我使用CodeJock ImageManager component来保存各种图像。我想将其中一个图像放入FlexGrid单元格中。
我拥有的图像是Png格式并且具有透明背景,因此当我将图像加载到网格中时,如下所示:
Grid.Cell(flexcpPicture, 123, 4) = _
ImageManagerControl.Icons.GetImage(ImageNum, 16).CreatePicture(xtpImageNormal)
原始图像中透明的背景现在是黑色的: (如果我使用上述方法将图像加载到PictureBox中,也会发生同样的情况)
根据文档CreatePicture
返回一个StdPicture对象,是否有某种方法可以转换此图像(也许使用BitBlt),以便黑色为白色?我不确定这是否可能?
我只需要用大约三个图像来做这个,所以如果我必须首先将它们加载到ImageList或其他东西中就可以了。
答案 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