以像素为单位绘制图像的简单方法

时间:2015-07-24 03:21:46

标签: c# winforms drawimage

我正在尝试处理一些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) );

但问题是现在没有使用像素作为测量值,因此我无法在屏幕上正确定位。

1 个答案:

答案 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...