-
Работаю с TPngImage. Добавил в TPngImageList 8-ми битную пнгшку, без альфа-канала. Привязал к TPngImageList немного модифицрованный SpeedButton. В полноцветных режимах всё работает, как и должно - image отрисовывается на канвасе SpeedButtona командой:
StretchDiBits(ACanvas.Handle, Rect.Left, Rect.Top, Rect.Right - Rect.Left, Rect.Bottom - Rect.Top, 0, 0, Header.Width, Header.Height, Header.ImageData, pBitmapInfo(@Header.BitmapInfo)^, DIB_RGB_COLORS, SRCCOPY);
В 256 цветном же режиме Image рисуется только 16-ю (8-ю?) цветами. Текущую палитру устанавливаю в палитру градаций серого. Рядом на форме лежит обычный SpeedButton. На нём в Glyph'е эта же картинка (только в фомате bmp) отображается нормально и в 32-битном цвете и в 8-ми битном.
Пробовал доьавлять SetStretchBltMode. Отображение изменяется, когда включаю режим HALFTONE - винда картинку начинает дифферить, в режиме COLORONCOLOR - никаких изменений...
Спасибо за ответы.
|