Подскажите по палитре TBitmap

Вопросы программирования на Free Pascal, использования компилятора и утилит.

Модератор: Модераторы

Ответить
Аватара пользователя
kotompazb
постоялец
Сообщения: 156
Зарегистрирован: 21.06.2012 13:03:39
Откуда: Novosibirsk, xUSSR

Подскажите по палитре TBitmap

Сообщение kotompazb »

Ткните пожалуйста носом.
Имеется (допустим) Bitmap c глубиной цвета 4 bpp и отдельно палитра в виде набора RGB-цветов (массив, например).
Нужно заменить палитру Битмапа на мою. И сам принцип в общем полезно б понять.
Спасибо.

Замечание.
Делаю просмотр "экзотики". Можно было бы просто использовать 24 bpp и писать напрямую через scanlines готовые цвета, но так как исходные картинки "малоцветные", решил, что 4 будет достаточно.
Как делал раньше. Полностью создавал в памяти структуру битмапа с заголовком, заполнял все нужными мне значениями, а потом перебрасывал в битмап через MemoryStream O_o
Vadim
долгожитель
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Сообщение Vadim »

kotompazb
Можно присвоисть свою палитру TBitmap.Palette, создав её предварительно с помощью функции CreatePalette(). Правда сам я этой функцией никогда не пользовался, так что подробных объяснений не будет. :-) Проще всего, если у Вас уже есть файл с такой палитрой, скопировать её оттуда.
Аватара пользователя
kotompazb
постоялец
Сообщения: 156
Зарегистрирован: 21.06.2012 13:03:39
Откуда: Novosibirsk, xUSSR

Сообщение kotompazb »

Спасибо.
Да отказался я от этой идеи уже.
Делаю, как делал раньше. Все данные пишу в стрим потом загружаю из него в битмап, ну и стрим обнуляю. По крайней мере не предвижу пока проблем с такими костылями:)
Ответить