需要引用System.Drawing,使用Image,Bitmap,Graphics
可以理解为Image是需要拼接的图片,Bitmap是画布,Graphics是画板
流程通俗的讲也就是准备好需要拼接的图片,画板上铺上画布,选好画布底色,把图片放到画布上,保存画布
之前在网上查询相关拼接资料,基本是根据坐标按点绘制,我这里整理了另外一种比较简洁的拼接法,30行代码左右完成
Image img1 = Image.FromFile("F:\\1.png");
Bitmap map1 = new Bitmap(img1);
Image img2 = Image.FromFile("F:\\2.jpg");
Bitmap map2 = new Bitmap(img2);
var width = Math.Max(img1.Width, img2.Width);
var height = img1.Height + img2.Height + 10;
// 初始化画布(最终的拼图画布)并设置宽高
Bitmap bitMap = new Bitmap(width, height);
// 初始化画板
Graphics g1 = Graphics.FromImage(bitMap);
// 将画布涂为白色(底部颜色可自行设置)
g1.FillRectangle(Brushes.White, new Rectangle(0, 0, width, height));
//在x=0,y=0处画上图一
g1.DrawImage(map1, 0, 0, img1.Width, img1.Height);
//在x=0,y在图一往下10像素处画上图二
g1.DrawImage(map2, 0, img1.Height + 10, img2.Width, img2.Height);
map1.Dispose();
map2.Dispose();
Image img = bitMap;
//保存
img.Save("f:\\3.jpg");
以上是所有拼接代码,是最简单的2图拼接,可以根据需求进行多图扩展和图片大小像素的调整。
供刚接触Drawing的大家参考~
另外,在写此方法时,遇到一个诡异的问题。
开始的时候图片死活加载不上,后面重新敲了一遍就可以了…
如下图报错,img4和img3都可以正常运行,img1会报不支持给定路径的格式
但是img3和img1写法上没有什么区别,搞不懂,有没有大神告诉我为什么…