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


Автор: vovos 15.6.2006, 15:20
Нужно битмат сконвертировать в 4-bit
пишу:
Код

Bitmap := TBitmap.Create;
Bitmap.Width := 100;
Bitmap.Height := 100;
Bitmap.PixelFormat := pf4bit;
BitBlt(Bitmap.Canvas.Handle, 0, 0, 100, 100, GetDC(GetDesktopWindow), 0, 0, SRCCOPY); // для примера копирую часть экрана
Bitmap.SaveToFile(AFileName);


После этого в файле наблюдаются совсем не те цвета. 
Догадываюсь что в код наверно нужно добавить какие-то операции с палитрой. Подскажите, пожалуйста, что я упустил 

Автор: Alexeis 15.6.2006, 15:29
Зачем же так сложно просто - 
bitmap.PixelFormat := pf4bit; 

Автор: vovos 15.6.2006, 15:39
Ну я полный код привел, но проблема в том что цвета совсем не те 

Автор: Alexeis 15.6.2006, 15:48
Конечно не те он ведь растрирует на свою палитру.
Ниже есть моя статья по формату bmp, там в качестве примера специальная програма для перевода изображений из 16, 24, 32 бита в 1, 4, 8 - бит в зависимости от реально использованого числа цветов, но там все делается ручками от начала до конца. 

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