0

我正在使用CodeJock ImageManager 组件来保存各种图像。我想将这些图像之一放入 FlexGrid 单元格。

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

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

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

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

我只需要使用大约三个图像来执行此操作,因此如果我必须先将它们加载到 ImageList 或其他东西中,那就可以了。

4

1 回答 1

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

于 2012-11-20T03:03:24.050 回答