C# 拼接两张图片

需要引用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写法上没有什么区别,搞不懂,有没有大神告诉我为什么…

猜你喜欢

转载自blog.csdn.net/yanxiaozai/article/details/83148417