C#图形显示的图像大于正常吗?

时间:2011-04-16 16:23:41

标签: c# graphics

我正在尝试使用C Sharp的System.Drawing.Graphics合并两个图像。

这是我的代码:

        Point p = new Point(Convert.ToInt32(OffsetX), Convert.ToInt32(OffsetY));
        Image i = Image.FromFile("1.jpg");
        Image toDraw = Image.FromFile("2.jpg");
        using (Graphics g = Graphics.FromImage(i))
        {
            g.DrawImage(toDraw, p);
            g.Save();
            Directory.CreateDirectory(Path.Combine(Directory.GetCurrentDirectory(), "saved"));
            i.Save(Path.Combine("saved", "saved1.jpg"));
        }

代码工作正常,但第二个图像在程序输出中放大。

用油漆制作:

enter image description here

使用上面的代码制作:

enter image description here

1 个答案:

答案 0 :(得分:3)

使用Graphics.DrawImage(Image,Rectangle)重载来控制图像的大小。您使用的重载会记录Image.Horizo​​ntalResolution和VerticalResolution属性,以确保绘制的图像(大致)与创建时一样大。修正:

       g.DrawImage(toDraw, new Rectangle(p, new Size(i.Width, i.Height)));