| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Звук, графика и видео > Как сэкономить память? |
| Автор: костярик 21.7.2006, 16:40 |
| Добрый день! У меня еще один вопрос |
| Автор: костярик 21.7.2006, 20:34 | ||
Ну, не знаю что там у него храниться, но у меня при динамическом создании нового экземпляра класса TBitmap, занимаемая память увеличивается 12 кб (вместе в виртуальной). Размеры поля: 1 на 1 пиксел. Вот этого-то я и хочу избежать. Мне надо хранить только инфу о цвете -- 3 байта в вышеприведенном примере, а не 12 кб. Как мне это сделать? Я видел, есть какие-то HBitmap, BITMAPINFO... Что лучше использовать и, если можно вкратце, как? А за png спасибо, интересно, как это он позволяет уменьшить размер, надо будет узнать... |
| Автор: Alexeis 21.7.2006, 22:09 |
| Для вывода на экран, можно использовать только bitmap, поскольку видеоадаптер работает именно с ним. Память выделяется в основном (12кб), на сам объект, а не на изображение. Если его грузить в память при помощи Аpi то этих расходов удастся избежать. BITMAPINFO занимает не более 144байт(самый навороченный вариант) BITMAPfileHeader байт 10 и палитра(только для изображений 256 цветов и хуже) 256 * 4 = 1кб Если сильно хочется это сделать ручками или просто познакомится с его внутренней структурой, то читайте мою статью http://forum.vingrad.ru/index.php?showtopic=94227&hl=%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%82,and,bmp |