好像是GDI + TextureBrush Bug

时间:2015-06-26 07:24:22

标签: gdi+

在提到之前,我不能说英语很好

最近我使用GDI +

制作Windows桌面应用程序(在Windows7上)

我认为Gdiplus :: TextureBrush有一个bug。我希望有人发现像我这样的错误。

该bug如下所示

步骤1。 有一个500dpi,6250 * 7819大小的图像

第二步 使用Gdiplus::Image::FromStream()加载图片 图片名称为"image1"

步骤3。 创建图形图形(HDC);

步骤3。 创建Gdiplus::TextureBrush brush = Gdiplus::TextureBrush(image1);

步骤4 graphics.FillPath(brush); 目前一切正常,你可以在屏幕上看到正确的图像

STEP5 从位图创建另一个图形 Graphics::Bitmap* bitmap = new Graphics::Bitmap(size.CX, size.CY), PixelFormat32bppARG); Graphics* anotherGraphics = Gdiplus::Graphics::FromImage(bitmap);

步骤6(此处发生错误) anotherGraphics.DrawImage(image1); 然后从anotherGraphics分离新图像。 但新图像很奇怪,新图像完全由原始图像中的一个像素填充

但下次再也不会发生.. 在应用程序生命周期中只有一次

出了什么问题....

1 个答案:

答案 0 :(得分:0)

Bitmap::FromStream方法有第二个arguseEmbededColorManagement(不确定这个名字是否正确)我确实将True置于其中然后运行良好。 arg看起来与此错误无关。

我仍然不知道它的工作原理,但我解决了这个问题。