C# 拼接兩張圖片
阿新 • • 發佈:2018-11-10
需要引用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寫法上沒有什麼區別,搞不懂,有沒有大神告訴我為什麼…