我正在尝试处理一些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) );
但问题是现在没有使用像素作为测量值,因此我无法在屏幕上正确定位。
答案 0 :(得分:3)
调用DrawImage
但指定所需的宽度和高度,否则GDI +将考虑设备的DPI并进行缩放。
graphics.DrawImage(grass, top, left, grass.Width, grass.Height);
谨防DrawImageUnscaled()
,与其建议相反,实际上会继续扩展。
Well Graphics.DrawImageUnscaled Method(Image,Int32,Int32)与DrawImage(Image,Int32,Int32)没有什么不同 - Tell me more...