在提到之前,我不能说英语很好
最近我使用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
分离新图像。
但新图像很奇怪,新图像完全由原始图像中的一个像素填充
但下次再也不会发生.. 在应用程序生命周期中只有一次
出了什么问题....
答案 0 :(得分:0)
Bitmap::FromStream
方法有第二个arg
即useEmbededColorManagement
(不确定这个名字是否正确)我确实将True置于其中然后运行良好。 arg看起来与此错误无关。
我仍然不知道它的工作原理,但我解决了这个问题。