我正在尝试使用C#绘图名称空间并排绘制两个图像。
这是一个非常简单的示例,假定我们有两个高度相同的图像:
Image[] oldImages = GetOldImages();
var newImage = new Bitmap(oldImages[0].Width + oldImages[1].Width, 800);
using (var newImageGraphics = Graphics.FromImage(newImage))
{
newImageGraphics.DrawImage(oldImages[0], 0, 0);
newImageGraphics.DrawImage(oldImages[1], oldImage[0].Width, 0);
newImageGraphics.Save();
}
如果两个旧图像的分辨率相同,则此方法正常。
但是,如果分辨率不同,则会调整图像大小,从而导致问题。例如,如果第一张图像具有不同的分辨率,则第二张图像将被错误地放置。
有谁知道我可以轻松解决此问题?理想情况下,我希望原始图像的高度和宽度在被绘制到新图像上时保持不变。
最佳答案
试试这个技巧:
Bitmap picture_1 = new Bitmap(picture_1_path);
Graphics graphics = Graphics.FromImage(picture_1);
Bitmap picture_2 = new Bitmap(picture_2_path);
picture_2.SetResolution(graphics.DpiX, graphics.DpiY);
//Then do with pictures anything