是否有人使用以下System.Drawing.Graphics方法重载遇到类似问题?
public void DrawImage(Image image,
Rectangle destRect,
Rectangle srcRect,
GraphicsUnit srcUnit)
使用以下方法创建Visual Studio控制台应用程序:
using (var g = Graphics.FromImage(image)) {
g.DrawImage(image,
new Rectangle(new Point(50, 50), new Size(20, 20)),
new Rectangle(new Point(0, 0), new Size(20, 20)),
GraphicsUnit.Pixel);
}
.NET framework version:v4.0.30319
原始图片:
控制台应用已在不同的计算机上运行,产生了不同的结果:
第一台计算机上的通缉结果(Windows server 2008 SP1):
第二台计算机上的不需要的结果(Windows Server 2008 SP2):
答案 0 :(得分:3)
您的调用行为未定义,因为源位图和目标位图是相同的。它将依赖于图形驱动程序。这就好像您在源缓冲区和目标缓冲区相同时尝试使用memcpy而不是memmove。