![]() |
|
Модераторы: Snowy, Alexeis, MetalFan |
![]()
|
|
| Ak47black |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2205 Регистрация: 2.12.2005 Репутация: нет Всего: 0 |
Здравствуйте.
Подскажите пожалуйста как тут правильно сделать. Работаю с TImage. В начале работы получаю указатель на bitmap и работаю с ним
Обновляю рисунок очень часто тоесть каждый 50ms. Если я просто обновляю(bitmap) то процессора почти эта процеду не жрёт, но если я дописываю repaint чтобы видеть изменения на форме то жрёт примерно 30-40% процессора. Вопрос - можно-ли сделать так что-бы обновлять только те участки на форме(TImage) которые я изменил (координаты мне заранее известны). |
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 55 Всего: 459 |
Ak47black, попробуй функцию InvalidateRect(); для окна на котором находиться TImage. функция помечает изображение в указанном прямоугольнике недействительным, т.е. как будто поверх него что-то нарисовали. Если TImage умеет отрисовываться фрагментами, то это то что нужно.
-------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| Ak47black |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2205 Регистрация: 2.12.2005 Репутация: нет Всего: 0 |
Alexeis, попробовал но чтото нетак выходит точнее еще больше жрёт зараза, но обновляется .
Вот так я пробовал
PosSize - размер массива прямоугольников. PosArr - массив прямоугольников. Чтото я нето делаю. |
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 55 Всего: 459 |
Думаю просто дело в том, что TImage не предназначен для вывода анимации и не отрисовывает изображение кусками, потому прийдется это делать руками - Canvas.copyrect в руки -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| Ak47black |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2205 Регистрация: 2.12.2005 Репутация: нет Всего: 0 |
Alexeis, а есть из стандартных компоненты, которые позволяют получить доступ к scanlinам и отображать участки по отдельности?
|
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 55 Всего: 459 |
Есть. TBitmap
-------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| Ak47black |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2205 Регистрация: 2.12.2005 Репутация: нет Всего: 0 |
Эмм это ты в шутку или знаешь выход.
Так ,а как мне его заюзать. Как используя TBitmap обновлять только изменёные участки. Мне важней всего оптимизация, и нужно выводить все изминения очень быстро. |
|||
|
||||
| ivan219 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1121 Регистрация: 19.11.2005 Где: Планета земля Репутация: 4 Всего: 12 |
А утебя Transparent у Image False ???
|
|||
|
||||
| Ak47black |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2205 Регистрация: 2.12.2005 Репутация: нет Всего: 0 |
Да я использую 24bit.
Ну тут если с TBitmap работать то надо каждый раз получать ScanLine ,а это черевато нагрузкой на процессор. |
||||
|
|||||
| Ak47black |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2205 Регистрация: 2.12.2005 Репутация: нет Всего: 0 |
Может кто ответить как сделать.
У меня есть указатель на память которая хранить сканлайны изображения которое постоянно меняется, мне нужно сделать как-бы обвёртку для этой памяти что-бы можно было юзать как TBitmap. |
|||
|
||||
| ivan219 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1121 Регистрация: 19.11.2005 Где: Планета земля Репутация: 4 Всего: 12 |
Если Transparent включён то Image будет напрягать проц пополной выключи его и посмотри что будет. |
|||
|
||||
| Ak47black |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2205 Регистрация: 2.12.2005 Репутация: нет Всего: 0 |
ivan219, мне нужно оптимизировать так что-бы почти вообще процессора не занимал.
Я нехочю всё заново прорисовывать, мне это ненужно и неэкономно. |
|||
|
||||
| Ak47black |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2205 Регистрация: 2.12.2005 Репутация: нет Всего: 0 |
Чето у меня этот код не идёт.
Это сообщение отредактировал(а) Ak47black - 8.7.2007, 18:39 Присоединённый файл ( Кол-во скачиваний: 5 )
test.rar 5,90 Kb |
|||
|
||||
| MetalFan |
|
|||
![]() Аццкий Сотона ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3815 Регистрация: 2.10.2006 Где: Moscow Репутация: 5 Всего: 128 |
немного поправленная с помощью молотка и лома функция (ибо не до конца разбираюсь в теме создания битмапов),
но вроде бы работает)
Это сообщение отредактировал(а) MetalFan - 8.7.2007, 23:16 -------------------- There are always someone smarter than you... |
|||
|
||||
| Ak47black |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2205 Регистрация: 2.12.2005 Репутация: нет Всего: 0 |
Ок. С обверткой для битов разобрался используя выше приведенный код и поменял на CreateDIBSection.
Теперь вродебы всё есть но немогу добиться результата. Пробовал но чтото не выходит, можете ктонибудь еше подсказать пожалуйста, для продвижения. Значит опишу чётко что у меня есть. Есть:
Цель: Вывести на форму изображение (пользуясь 1.) которое очень часто меняется (можно сказать как-бы видео) и чтобы сильно уменьшить нагрузку на процессор используя заранее известные координаты из (2.Массив изменённых участков) выводить и обновлять только те участки которые подверглись изменению. Пробовал:
Это сообщение отредактировал(а) Ak47black - 9.7.2007, 20:37 |
|||
|
||||
![]()
|
| Правила форума "Delphi: Звук, графика и видео" | |
|
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делится вскрытыми компонентами
FAQ раздела лежит здесь! Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Girder, Snowy. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Звук, графика и видео | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |