以像素为单位绘制图像的更简单方法
Simpler way of drawing an image with pixels as the unit
我正在尝试获取某些 C# 函数的句柄。有没有更简单的方法以 Windows 形式使用像素作为度量将图像绘制到屏幕上?我只想要那种准确性,因为我最终会 运行 通过世界级别的数组,并根据数组在屏幕上放置草和墙壁等。
Image grass = Bitmap.FromFile("grass.png");
// Create parallelogram for drawing image.
Point ulCorner = new Point(0, 0);
Point urCorner = new Point(100, 0);
Point llCorner = new Point(0, 100);
Point[] destPara = { ulCorner, urCorner, llCorner };
// Create rectangle for source image.
Rectangle srcRect = new Rectangle(0, 0, 100, 100);
GraphicsUnit units = GraphicsUnit.Pixel;
// Draw image to screen.
GFX.DrawImage(grass, destPara, srcRect, units);
我知道我可以做到以下几点:
GFX.DrawImage(grass, new point(50,50) );
但问题是现在没有使用像素作为测量单位,所以我无法在屏幕上正确定位它。
调用 DrawImage
但指定您想要的宽度和高度,否则 GDI+ 将考虑设备的 DPI 并对其进行缩放。
graphics.DrawImage(grass, top, left, grass.Width, grass.Height);
注意 DrawImageUnscaled()
,与它的建议相反,实际上会继续扩展。
Well Graphics.DrawImageUnscaled Method (Image, Int32, Int32) doesn't do anything different than DrawImage (Image, Int32, Int32) - Tell me more...
我正在尝试获取某些 C# 函数的句柄。有没有更简单的方法以 Windows 形式使用像素作为度量将图像绘制到屏幕上?我只想要那种准确性,因为我最终会 运行 通过世界级别的数组,并根据数组在屏幕上放置草和墙壁等。
Image grass = Bitmap.FromFile("grass.png");
// Create parallelogram for drawing image.
Point ulCorner = new Point(0, 0);
Point urCorner = new Point(100, 0);
Point llCorner = new Point(0, 100);
Point[] destPara = { ulCorner, urCorner, llCorner };
// Create rectangle for source image.
Rectangle srcRect = new Rectangle(0, 0, 100, 100);
GraphicsUnit units = GraphicsUnit.Pixel;
// Draw image to screen.
GFX.DrawImage(grass, destPara, srcRect, units);
我知道我可以做到以下几点:
GFX.DrawImage(grass, new point(50,50) );
但问题是现在没有使用像素作为测量单位,所以我无法在屏幕上正确定位它。
调用 DrawImage
但指定您想要的宽度和高度,否则 GDI+ 将考虑设备的 DPI 并对其进行缩放。
graphics.DrawImage(grass, top, left, grass.Width, grass.Height);
注意 DrawImageUnscaled()
,与它的建议相反,实际上会继续扩展。
Well Graphics.DrawImageUnscaled Method (Image, Int32, Int32) doesn't do anything different than DrawImage (Image, Int32, Int32) - Tell me more...