将StdPicture透明度颜色转换为白色

时间:2012-11-16 09:24:43

标签: winapi vb6 bitmap png bitblt

我使用CodeJock ImageManager component来保存各种图像。我想将其中一个图像放入FlexGrid单元格中。

我拥有的图像是Png格式并且具有透明背景,因此当我将图像加载到网格中时,如下所示:

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

原始图像中透明的背景现在是黑色的: enter image description here(如果我使用上述方法将图像加载到PictureBox中,也会发生同样的情况)

根据文档CreatePicture返回一个StdPicture对象,是否有某种方法可以转换此图像(也许使用BitBlt),以便黑色为白色?我不确定这是否可能?

我只需要用大约三个图像来做这个,所以如果我必须首先将它们加载到ImageList或其他东西中就可以了。

1 个答案:

答案 0 :(得分:0)

我不确定这是否有帮助,但我一直在玩PictureBox。我在表单上放了两个图片框,放了一个bmp文件(这只适用于bmp文件,所以对你来说可能没用),并且这样做了:

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

成功反转了位图。以下是RasterOp常量:http://msdn.microsoft.com/en-us/library/aa243035(v=vs.60).aspx