|
Модераторы: Snowy, Alexeis, MetalFan |
|
hug |
|
|||
Шустрый Профиль Группа: Участник Сообщений: 87 Регистрация: 27.7.2007 Репутация: нет Всего: нет |
Есть картотека с фотографиями (BLOB)-поле
Если есть фотка то гружу ее из потока, а если нет принято решение закрашивать место под фото белым. Вот код закраски:
Но эта закраска работает оч медленно. Даже медленнее чем грузить фото из базы? Может кто-нибуть знает как быстрее Image сделать белым? |
|||
|
||||
former |
|
|||
MEMS Expert Профиль Группа: Завсегдатай Сообщений: 1166 Регистрация: 1.3.2006 Где: Россия Репутация: нет Всего: 17 |
Есть хороший компонент MyDBImage. Это стандартный DBImage с поддержкой jpeg и возможностью выводить надпись при отсутствии данных в поле. Вот тебе ссылка. -------------------- Достаточно снизить уровень мышления, чтобы иные почувствовали почву под ногами. |
|||
|
||||
Alexeis |
|
|||
Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 55 Всего: 459 |
hug, функция PatBtl (см. MSDN) это делает в несколько раз быстрее.
-------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
somewhere |
|
|||
Новичок Профиль Группа: Участник Сообщений: 18 Регистрация: 8.8.2007 Репутация: нет Всего: нет |
Через TBitmap.ScanLine будет почто в 50 раз быстрее (замерял).
Примерно так:
Это сообщение отредактировал(а) somewhere - 9.8.2007, 15:32 |
|||
|
||||
s-mike |
|
|||
Опытный Профиль Группа: Участник Сообщений: 425 Регистрация: 16.1.2005 Где: Киев Репутация: 5 Всего: 16 |
А где учтено время отрисовки на экране? Добавлено через 41 секунду ScanLine — это всего лишь заполнение массива данных в памяти. Отрисовка требует гораздо больше времени. |
|||
|
||||
somewhere |
|
|||
Новичок Профиль Группа: Участник Сообщений: 18 Регистрация: 8.8.2007 Репутация: нет Всего: нет |
Если вы хоть раз рисовали "напрямую" в видеопамяти, то поймете что примерно столькоже, сколько и заполнение массива. На скорость отрисовки в данном примере влияет только заполнения битмапа. В обоих случаях сама отрисовка выполняется самим компонентом TImage средствами WinAPI |
|||
|
||||
Alexeis |
|
|||
Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 55 Всего: 459 |
s-mike, имел ввиду то что громкие заявления о скорости ничего не дают, так как большая часть времени тратиться на отрисовку битмапа, а не на заполнение его значениями цвета. На самом деле TImage использует не просто API а GDI в котором отрисовка битмапа весьма медленная операция, потому стремиться изо всех сил улучшать этот показатель нет смысла.
-------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
somewhere |
|
|||
Новичок Профиль Группа: Участник Сообщений: 18 Регистрация: 8.8.2007 Репутация: нет Всего: нет |
Есть смысл улучшать любой показатель, влияющий на скорость. Тем более, что это дает значительный прирост. А вот медленная прорисовка самого битмапа, это уже косяк разработчиков. Возможно они тоже думали, что битмап проще нарисовать програмно, нежели аппаратно, используя возможности драйвера видеоадаптера. В любом случае ScanLine однажды мне сильно помог, сильно ускорив отрисовку... |
|||
|
||||
s-mike |
|
|||
Опытный Профиль Группа: Участник Сообщений: 425 Регистрация: 16.1.2005 Где: Киев Репутация: 5 Всего: 16 |
А вы рисовали? Будьте добры примерчик, как рисовать в Windows напрямую в видеопамяти. Тогда можете говорить, что эта операция также тривиальна и быстра, как и заполнение массива. |
|||
|
||||
Правила форума "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. |