Преобразовать цвет прозрачности 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