| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Звук, графика и видео > Как про большом числе TImage повысить fps? |
| Автор: Rogvold 9.4.2007, 11:09 |
| Проблема такова: имеется форма, на которой много (порядка тысячи) компонентов TImage размера 48х48, отображающих маленькие картинки формата jpg или bmp. Собственно, сама проблема заключается в том, что все это дело нещадно тормозит, и при передвижении мерцает. Пожалуйста, посоветуйте что в данном случае можно предпринять и, возможно, как вообще следует при таком кол-ве изображений реализовать программу. Буду весьма благодарен. |
| Автор: Snowy 9.4.2007, 11:31 |
| Быстрое решение - DoubleBuffereв := true; Правильное - один TImage. ЗЫ. Я подозреваю, что картинки вовсе не 48х48, а большего размера, но стретченые... В этом случае будет не тормозить, а дико и невероятно тормозить ;-) |
| Автор: Rogvold 9.4.2007, 11:50 |
| Нет, сами картинки как раз меньше - 30х30, но их необходимо было стречнуть до 48х48. А как можно через 1 TImage это сделать? |
| Автор: Snowy 9.4.2007, 11:57 |
| Всё равно - стретч хавает ресурсы. Хоть в данном случае и меньше, чем на больших картинках. Создать имадж нужного размера и на нём нарисовать все нужные картинки. После этого ничего уже не стретчится, выводится всё разом. |
| Автор: Rogvold 9.4.2007, 12:42 | ||
Извините, я просто новичок немного... как картинки нарисовать на канву? |
| Автор: Snowy 9.4.2007, 13:31 |
| На канву TImage'а Canvas.StretchDraw Подробнее - в поиск и справку. |
| Автор: iddqd 9.4.2007, 13:36 |
| Один из вариантов: CopyRect Copies part of an image from another canvas into the canvas. |
| Автор: Rogvold 9.4.2007, 15:41 |
| Snowy, iddqd, спасибо большое! |
| Автор: Rogvold 9.4.2007, 21:03 |
| И все-таки, не мог бы мне кто-нибудь помочь - не могу никак на канвасе имага нарисовать картинку. Если есть возвожность, киньте в меня нужной процедуркой или желательно маленьким примерчиком. |
| Автор: Rogvold 10.4.2007, 10:46 | ||
Пишу вот что:
Вылезает еррор Access Violation. Картинка существует. Подскажите, из-за чего такое может быть? |
| Автор: Snowy 10.4.2007, 12:35 |
| http://forum.vingrad.ru/index.php?showtopic=80671&view=findpost&p=624023 |
| Автор: Rogvold 10.4.2007, 17:30 |
| Cпасибо больущее!! Если б мог - сразу пять плюсов поставил ;) С меня пиво P.S. тему можно закрыть - проблема решена ;) |