這合并了兩個影像,但是如果我想合并兩個以上怎么辦?
我不確定如何添加另一個或更多影像。
private Bitmap MergeImages(Image image1, Image image2)
{
Bitmap bitmap = new Bitmap(image1.Width image2.Width, Math.Max(image1.Height, image2.Height));
using (Graphics g = Graphics.FromImage(bitmap))
{
g.DrawImage(image1, 0, 0);
g.DrawImage(image2, image1.Width, 0);
}
bitmap.MakeTransparent();
return bitmap;
}
例如 3 張圖片:
private Bitmap MergeImages(Image image1, Image image2, Image image3)
{
Bitmap bitmap = new Bitmap(image1.Width image2.Width, Math.Max(image1.Height, image2.Height));
using (Graphics g = Graphics.FromImage(bitmap))
{
g.DrawImage(image1, 0, 0);
g.DrawImage(image2, image1.Width, 0);
}
bitmap.MakeTransparent();
return bitmap;
}
uj5u.com熱心網友回復:
只需撰寫一個回圈,跟蹤所有繪制影像的當前寬度:
private Bitmap MergeImages(IEnumerable<Image> images)
{
var totalWidth = images.Sum(i => i.Width);
var maxHeight = images.Max(i => i.Height);
Bitmap bitmap = new Bitmap(totalWidth , maxHeight );
var currentXPos = 0;
using (Graphics g = Graphics.FromImage(bitmap))
{
foreach(var image in images)
{
g.DrawImage(image, currentXPos, 0);
currentXPos = image.Width;
}
}
bitmap.MakeTransparent();
return bitmap;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/389779.html
上一篇:使用“a”變數對數字進行排序
下一篇:通過Web在WinForm中列印
