Gdi+ 看起来像GDI+;织纹虫

Gdi+ 看起来像GDI+;织纹虫,gdi+,Gdi+,在此之前,我的英语说得不太好 最近我使用GDI制作了Windows桌面应用程序(在Windows7上)+ 我认为Gdiplus::TextureBrush有一个bug。我希望有人能像我一样找到这只虫子 这个bug如下所示 第一步。 有一个图像的分辨率为500dpi,大小为6250*7819 步骤2 使用Gdiplus::image::FromStream()加载映像 图像名称为“image1” 第三步。 创建图形(HDC) 第三步。 创建Gdiplus::TextureBrush笔刷=Gdipl

在此之前,我的英语说得不太好

最近我使用GDI制作了Windows桌面应用程序(在Windows7上)+

我认为Gdiplus::TextureBrush有一个bug。我希望有人能像我一样找到这只虫子

这个bug如下所示

第一步。 有一个图像的分辨率为500dpi,大小为6250*7819

步骤2 使用
Gdiplus::image::FromStream()加载映像
图像名称为
“image1”

第三步。 创建图形(HDC)

第三步。 创建
Gdiplus::TextureBrush笔刷=Gdiplus::TextureBrush(图像1)

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

步骤5 从位图创建另一个图形
Graphics::Bitmap*Bitmap=新图形::位图(size.CX,size.CY),像素格式32bpparg
Graphics*anotherGraphics=Gdiplus::Graphics::FromImage(位图)

第6步(此处出现错误)
anotherGraphics.DrawImage(图像1)
然后将新图像与另一个图形分离。
但新图像很奇怪,新图像完全由原始图像的一个像素填充

但是下一次,它再也不会发生了。。 在应用程序生命周期内只有一次


有什么不对…

Bitmap::FromStream
方法有第二个
arg
,即
使用的EmbeddedColorManagement
(无论如何不确定这是正确的名称)我确实在其中输入了正确的名称,然后它工作正常。arg看起来与此bug无关


我仍然不知道它为什么会工作,但我解决了这个问题。

可能是某种奇怪的单色。它也可能是未定义的行为。我会简化图形,直到它工作,然后构建并经常检查它是否仍在工作——这就是我在撞墙时所做的。顺便说一句,在任何情况下,它都不太可能是一个bug。