![]() |
|
Модераторы: Snowy, Alexeis, MetalFan |
![]()
|
|
| ДЫМ |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 224 Регистрация: 6.1.2004 Репутация: нет Всего: 8 |
У меня Bitmap размера 2000х2000, как мне наиболее быстро залить его указанным цветом? Есть что-то еще кроме FillRect?
|
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 55 Всего: 459 |
ДЫМ, немного быстрее будет при помощи PatBlt, но FillRect её использует при перерисовке, так что скорость возрастет не намного, хотя на небольших картинках мне удавалось получить прирост скорости более чем в два раза!
Можно сконвертировать изображение в DIB - вызвав GetDiBBits, а затем в цикле присвоить каждый цвет, но при этом лишаемся ускорения видеокарты, так что врядли это даст прирост скорости, но попробовать стоит. Это сообщение отредактировал(а) alexeis1 - 12.5.2006, 09:47 -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 18 Всего: 484 |
Самый быстрый способ:
|
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 55 Всего: 459 |
-------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 18 Всего: 484 |
Зато быстро
Как говорил господин Форд: "Мы можем выпускать автомобили любого цвета, при условии, что этот цвет черный". |
|||
|
||||
| ДЫМ |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 224 Регистрация: 6.1.2004 Репутация: нет Всего: 8 |
А можно поподробнее? Почему лишимся ускорения видеокарты, ведь его и так нет, ни DirectX ни OpenGL не используются. |
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 55 Всего: 459 |
ДЫМ, дело в том, Windows обычно работает с аппаратнй версией битмапа т.е. не с DIB а DDB (Device Dependent Bitmap), что значит аппаратной - чаще всего такой DDB - грузится видео память для ускорения графического вывода. Получается, что GDI также не брезгует аппаратным ускорением. Так что получается
не совсем верно. DIB - это аппаратно-независимый битмап т.е. полностью лишенный всякого ускорения. Для TBitmap такому режиму соответствует установка pixelFormat в pf24bit, pf8bit и т.д. - для DDB - это pfDevice. Для pf24bit, pf8bit можно использовать scanLine для прямой адресации к растру, для pfDevice - такое невозможно. GDI Функции типа BitBlt "охотно" работают с DDB, чем здорово облегчают нам жизнь -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| ДЫМ |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 224 Регистрация: 6.1.2004 Репутация: нет Всего: 8 |
Что же получается, если pixelFormat = pf32bit, то работа с TBitmap будет быстрее, чем при pixelFormat = pf24bit? |
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 55 Всего: 459 |
ДЫМ, нет pf32bit анологичен pf32bit.
таким образом только pfDevice представляет режим DDB, т.е. аппаратно-зависимый(или точнее аппаратно-совместимый). -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
![]()
|
| Правила форума "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. |