Преобразовать цвет прозрачности StdPicture в белый

Я использую компонент CodeJock ImageManager для хранения различных изображений. Я хочу поместить одно из этих изображений в ячейку FlexGrid.

Изображения, которые у меня есть, имеют формат Png и имеют прозрачный фон, поэтому, когда я загружаю изображение в сетку следующим образом:

Grid.Cell(flexcpPicture, 123, 4) = _
ImageManagerControl.Icons.GetImage(ImageNum, 16).CreatePicture(xtpImageNormal)

фон, который в исходном изображении был прозрачным, теперь черный:введите описание изображения здесь (то же самое происходит, если я загружаю изображение в PictureBox, используя вышеуказанный метод)

Согласно документации CreatePicture возвращает объект StdPicture, есть ли какой-нибудь способ, которым я могу преобразовать это изображение (возможно, используя BitBlt), чтобы черный был белым? Я не уверен, возможно ли это вообще?

Мне нужно сделать это только с тремя изображениями, поэтому, если мне нужно сначала загрузить их в ImageList или что-то еще, это будет нормально.

1 ответ

Я не уверен, помогает ли это вообще, но я играл с PictureBox. Я поместил два графических блока в форму, поместил файл bmp (это работает только с файлами bmp, поэтому он может быть вам не полезен) и сделал это:

Picture2.PaintPicture Picture1.Picture, 0, 0, opcode:=vbNotSrcCopy

Который успешно инвертировал растровое изображение. Вот константы RasterOp: http://msdn.microsoft.com/en-us/library/aa243035(v=vs.60).aspx

Другие вопросы по тегам