Конференция "Media" » Работа StretchDiBits в 256 цветном режиме [D7, WinXP]
 
  • Дмитрий Белькевич © (30.10.07 01:36) [0]
    Работаю с 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 - никаких изменений...

    Спасибо за ответы.
 
Конференция "Media" » Работа StretchDiBits в 256 цветном режиме [D7, WinXP]
Есть новые Нет новых   [134431   +10][b:0][p:0]