Bitmap
От: surgeon Украина  
Дата: 26.03.02 07:50
Оценка:
Когда у СBitmap-a поле (в BITMAPINFOHEADER) biCompression == BI_BITFIELDS, проблем нет — узнаю битовые маски для каждого компонента RGB и делаю соответствующие преобразования из исходного формата в заданный. А вот когда biCompression == BI_RGB, тогда как узнать последовательность (RGB или BGR) ? Читал MSDN help: там написано одно, а на практике (при выводе на принтер) получается, что компоненты red и blue меняются местами, т.е. при циановый цвет превращается в желтый, синий в красный и т.п.
В print preview все нормально — там BI_BITFIELDS, а на принтере — BI_RGB.
noli nocere!
Re: Bitmap
От: Рек Россия  
Дата: 26.03.02 16:56
Оценка:
Здравствуйте surgeon, Вы писали:

S> Когда у СBitmap-a поле (в BITMAPINFOHEADER) biCompression == BI_BITFIELDS, проблем нет — узнаю битовые маски для каждого компонента RGB и делаю соответствующие преобразования из исходного формата в заданный. А вот когда biCompression == BI_RGB, тогда как узнать последовательность (RGB или BGR) ? Читал MSDN help: там написано одно, а на практике (при выводе на принтер) получается, что компоненты red и blue меняются местами, т.е. при циановый цвет превращается в желтый, синий в красный и т.п.

S> В print preview все нормально — там BI_BITFIELDS, а на принтере — BI_RGB.


BI_RGB — может быть и в палитровых dib'ах без компрессии.
Если там в палитру вместо RGBQUAD (порядок BGR) запихнуть COLORREF (RGB)
то цвета "перевернутся".

Проверь...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.