Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 15.07.2009
Сообщений: 6
1

Глюки с TImage, после CopyRect не пашет.

15.07.2009, 12:30. Показов 1289. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Задача такова, с камеры снимаются изображения, они переводятся в серое и сохраняются в массиве.
Затем я в цикле (с задержкой конечно) рисую эти кадры на TImage и копирую в Другой TImage.

Проблема: после нескольких таких копирований TImage(конечный) перестаёт работать.
Т.е. на него нельзя ничего скопировать, нельзя нарисовать, и даже перерисоваться не может... А размеры у него остаются прежние.

Попробывал найти "узкое место", рисую на скрытом компоненте 1 раз мой кадр, а затем в цикле (т.е. в потоке) копирую его в конечный TImage, и та же история, компонент перестаёт подавать признаков жизни.

код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
bool TForm1::ShowVideo(){
 if(recStream.getStatus()!=5){return false;} // проверяет 5 = проигрывание (play) иначе поток останавливается
            //Label5->Caption = IntToStr(recStream.getCurrent());// выводит счётчик кадров
 
            int sel = recStream.getSelect();// номер текущего кадра
            if(sel>=recStream.size){recStream.setStatus(0); /*recStream.reset();*/ modeCameraUsed = 0; return false;}
            MCadr* tut;
            
            //tut = recStream.getCadr(sel);
            //drawCadrOnImage(Image3,tut);  // рисование на скрытый TImage пропускаем
            Image1->Canvas->CopyRect(Rect(0,0,320,240),Image3->Canvas,Rect(0,0,320,240));
            recStream.setSelect(sel+1);// увеличиваем счётчик
            //Application->ProcessMessages();
            return true;
}
Как видим в цикле только копирование есть, значит вся проблема в нем. Цикл имеет задерку 40мс (при 200мс тоже самое происходит).
Создаётся ощущение, что у TImage есть ограниченное число копирований.

Какие ещё есть альтернативы копирования?

Зачем нужно копирование (вопрос ко мне): самый быстрый способ рисования из массива (формат массива не BMP) - это рисование через Image3->Picture->Bitmap->ScanLine[y], но данные сохраняются в картинке, но это на ней не отображается. а если с неё уже копировать на иную картинку, то там всё появляется.

Нужна маскимальная скорость, какие есть ещё быстрые способы рисования на компонент из массива??? Из-за ограничений ОЗУ не могу хранить кадры в BMP формате, т.к. нужен всего 1 канал (изобраги серые).
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.07.2009, 12:30
Ответы с готовыми решениями:

прогу написал, но что-то не пашет, или пашет неправильно посмотрите
В матрице удалить столбцы, в которых все числа меньше нуля. вот код uses crt; type...

Lenovo SL410 не пашет после похода в СЦ
Здравствуйте уважаемые форумчане. Недавно сдавал свой ноутбук Lenovo SL410 в СЦ. он просто не...

Не пашет coffeescript в прадакшн (наполовину пашет;) )
Приветствую, имеется проблема с работой скриптов. Так как в данной теме я знаний у меня нет - прошу...

поменял оперативку после этого при перезагрузке системник пашет а на мониторе полный ноль
ПОмогите люди добрые поменял оперативку после этого при перезагрузке системник пашет а на мониторе...

0
15.07.2009, 12:30
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.07.2009, 12:30
Помогаю со студенческими работами здесь

Глюки Яши после апдейта
Вот интересная вещь произошла с Яндексом. Мой сайт, да и многие пропали в выдаче. Причем это не...

Глюки после сборки компьютера
Здравствуйте,собрал компьютер из следующих комплектующих: Блок питания на 600W Материнская...

Глюки после обновления платформы до 8.3.10
Добрый день! После обновления платформы до 1С:Предприятие 8.3 (8.3.10.2667), Конфигурация Медицина....

глюки после винлока и SpeedUpMyPC
началось все с того, как я схватил троян винлок. сняв окно вируса с помощью кода и проверки на...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru