Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Звук, графика и видео > битмап 8 или 16 бит -> 24 бит


Автор: quard 18.5.2006, 15:20
см. тему
 

Автор: Romikgy 18.5.2006, 16:01
А в чем трабла то?
Посмотри как представлено 8 или 16 битмап, а 24 это типа так 0х00FFFFFF
вот и смести все влево на кол-во бит , каждый цвет 

Автор: Snowy 18.5.2006, 16:17
Да элементарно это делается.
Код

bmp.PixelFormat := pf24bit;
И всё. 

Автор: quard 18.5.2006, 17:52
Цитата

Да элементарно это делается.

Код

bmp.PixelFormat := pf24bit;
 
 
И всё. 


а мне надо с помощью Api

насколько я знаю надо
biBitCount := 24;
удалить палитру
и что-то сделать с самими битами...

 

Автор: Alexeis 19.5.2006, 12:56
quard, совсем необязательно для этого работать на низком уровне, достаточно загрузить изображение при помощи LoadImage 
Затем вызвать GetDIBits для получения независимого растра в нужном формате(хоть 24, хоть 32, хоть 8 бит на пиксель в формате rle). Она и сделает всю черную работу.
Цитата

The GetDIBits function retrieves the bits of the specified compatible bitmap and copies them into a buffer as a DIB using the specified format. 

Затем записать в файл три структуры
1) Файловый заголовок
2) Заголовок битмапа BitmapInfoHeader
и сразу за ним байты полученные при помощи GetDIBits 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)