如果仅将图像的左上角传递到
DrawImage
方法,Windows GDI+ 可能会缩放图像,这会降低性能。
对
DrawImage
方法的以下调用指定左上角 (50, 30) 但不指定目标矩形:
graphics.DrawImage(&image, 50, 30); // upper-left corner at (50, 30)
尽管就所需参数数而言,这是 DrawImage 方法的最简单版本,但它不一定是最高效的。 如果当前显示设备上的每英寸点数不同于创建图像的设备上每英寸的点数,则 GDI+ 会缩放图像,使当前显示设备上的物理大小尽可能接近创建图像的设备上的物理大小。
如果要阻止此类缩放,请将目标矩形的宽度和高度传递给 DrawImage 方法。 下面的示例绘制了两次相同的图像。 在第一种情况下,没有指定目标矩形的宽度和高度,图像会自动缩放。 在第二种情况下,将目标矩形的宽度和高度(以像素为单位)指定为与原始图像的宽度和高度相同。
Image image(L"Texture.jpg");
graphics.DrawImage(&image, 10, 10);
graphics.DrawImage(&image, 120, 10, image.GetWidth(), image.GetHeight());
下图显示了两次呈现的图像。