在 Go 中連接影像:綜合指南
在 Go 中,由於其強大的影像庫,操作影像變得輕而易舉。但是,如果您想將多個圖像合併到一張大畫布中,事情可能會變得混亂。這是像專業人士一樣處理此任務的分步指南。
載入圖片
首先,載入您想要連接的圖片。以下是執行此操作的程式碼片段:
// Open the first image imgFile1, err := os.Open("test1.jpg") if err != nil { fmt.Println(err) } // Decode the image img1, _, err := image.Decode(imgFile1) if err != nil { fmt.Println(err) } // Open the second image imgFile2, err := os.Open("test2.jpg") if err != nil { fmt.Println(err) } // Decode the image img2, _, err := image.Decode(imgFile2) if err != nil { fmt.Println(err) }
建立新影像
接下來,讓我們建立一個寬敞的新影像來容納兩個載入的圖像。透過添加兩個圖像的寬度來確定這個新畫布的尺寸:
r := image.Rectangle{image.Point{0, 0}, img1.Bounds().Dx() + img2.Bounds().Dx(), img1.Bounds().Dy()} rgba := image.NewRGBA(r)
繪製圖像
現在來了有趣的部分:在其中組裝圖像新畫布。確定要放置第二個影像的位置,然後將兩個影像繪製到畫布上:
// Starting point of the second image (bottom left) sp2 := image.Point{img1.Bounds().Dx(), 0} // Rectangle for the second image r2 := image.Rectangle{sp2, sp2.Add(img2.Bounds().Size())} // Draw the first image draw.Draw(rgba, img1.Bounds(), img1, image.Point{0, 0}, draw.Src) // Draw the second image draw.Draw(rgba, r2, img2, image.Point{0, 0}, draw.Src)
儲存結果
最後,讓我們永久儲存此結果透過將其儲存為新影像檔案來串聯傑作:
out, err := os.Create("./output.jpg") if err != nil { fmt.Println(err) } var opt jpeg.Options opt.Quality = 80 jpeg.Encode(out, rgba, &opt)
就是這樣!您已成功將多個影像合併為一個有凝聚力的整體。繼續前進,征服圖像處理的世界。
以上是如何在 Go 中連接影像?的詳細內容。更多資訊請關注PHP中文網其他相關文章!