我正在尝试使用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"));
}
代码工作正常,但第二个图像在程序输出中放大。
用油漆制作:
使用上面的代码制作:
答案 0 :(得分:3)
使用Graphics.DrawImage(Image,Rectangle)重载来控制图像的大小。您使用的重载会记录Image.HorizontalResolution和VerticalResolution属性,以确保绘制的图像(大致)与创建时一样大。修正:
g.DrawImage(toDraw, new Rectangle(p, new Size(i.Width, i.Height)));