Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Графика и игры
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 08.02.2012, 21:55
Аватар для Lothlorien
Lothlorien Lothlorien вне форума
Новичок
 
Регистрация: 06.04.2011
Адрес: Солнечная система
Сообщения: 69
Версия Delphi: 7.0
Репутация: 12
Вопрос Кэширование графики

Всем привет

Очередной вопрос от нуба, каковым я являюсь: какие существуют методы кэширования графики в среде Delphi? Применял TImageList, надеясь, что это ускорит обновление изображений (т.к. они уже загружены из файлов), эффекта не заметил. Начинял графикой res-файлы - тоже без толку, изображения-то всё равно надо загружать в оперативную память...
Если можно, посоветуйте, как грамотно кэшировать графику. Заранее благодарен за советы

Последний раз редактировалось Lothlorien, 08.02.2012 в 22:04.
Ответить с цитированием
  #2  
Старый 08.02.2012, 22:31
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,020
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Тут зависит от того, чего ты хочешь добиться.
Если задача стоит в нормальной прорисовке - то рисование на битмапе в памяти и потом вывод готовой графики сразу через копирование.
Если просто убыстрить работу с большим кол-вом относительно небольших файлов - то загрузка их в битмапы (сами битмапы можно свалить в какой-нить List, например TStringList - что бы были ключи строковые) и работа с ними. Грузить все картинки заранее при старте программы.
Ответить с цитированием
Этот пользователь сказал Спасибо lmikle за это полезное сообщение:
Lothlorien (08.02.2012)
  #3  
Старый 08.02.2012, 22:43
Аватар для Lothlorien
Lothlorien Lothlorien вне форума
Новичок
 
Регистрация: 06.04.2011
Адрес: Солнечная система
Сообщения: 69
Версия Delphi: 7.0
Репутация: 12
По умолчанию

Мне нужно в программе использовать довольно большое количество больших изображений в BMP, загружаемых из файлов. Но изюминка в том, что их надо выводить в одном и том же TBitmap/TImage, разница не принципиальная. Если каждый раз вызывать LoadFromFile для изображения весом от 3 МБ... торможение будет
Ответить с цитированием
  #4  
Старый 08.02.2012, 23:07
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Цитата:
Сообщение от lmikle
... Грузить все картинки заранее при старте программы.
Уже ответили.
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
  #5  
Старый 08.02.2012, 23:12
Аватар для Lothlorien
Lothlorien Lothlorien вне форума
Новичок
 
Регистрация: 06.04.2011
Адрес: Солнечная система
Сообщения: 69
Версия Delphi: 7.0
Репутация: 12
По умолчанию

То есть, если я при старте загружу картинку, скажем, A.BMP, в имидж Image1, а потом сделаю Image2.Assign(Image1), то торможения не будет?
Ответить с цитированием
  #6  
Старый 08.02.2012, 23:23
Аватар для Lothlorien
Lothlorien Lothlorien вне форума
Новичок
 
Регистрация: 06.04.2011
Адрес: Солнечная система
Сообщения: 69
Версия Delphi: 7.0
Репутация: 12
По умолчанию

Точнее, Image2.Picture.Bitmap.Assign(Image1.Picture.Bitmap ). Вроде всё равно очередная загрузка происходит...
Ответить с цитированием
  #7  
Старый 08.02.2012, 23:27
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Но уже из памяти, а с памятью, как понимаешь, работа идёт быстрее чем с файлом.
И при старте грузи не в TImage, а в битмапы! (TBitmap).
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
Этот пользователь сказал Спасибо angvelem за это полезное сообщение:
Lothlorien (08.02.2012)
  #8  
Старый 08.02.2012, 23:29
Аватар для Lothlorien
Lothlorien Lothlorien вне форума
Новичок
 
Регистрация: 06.04.2011
Адрес: Солнечная система
Сообщения: 69
Версия Delphi: 7.0
Репутация: 12
По умолчанию

Всё, понял, огромное спасибо
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 16:58.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter