Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Menggabungkan Imej dalam Go?
Sambungkan Imej dalam Go: Panduan Komprehensif
Dalam Go, memanipulasi imej adalah mudah berkat perpustakaan imejnya yang berkuasa. Walau bagaimanapun, jika anda ingin menggabungkan berbilang imej ke dalam satu kanvas besar, perkara boleh menjadi mengelirukan. Berikut ialah panduan langkah demi langkah untuk mengendalikan tugas ini seperti seorang profesional.
Memuatkan Imej
Untuk memulakan sesuatu, muatkan imej yang ingin anda gabungkan. Berikut ialah coretan kod untuk melakukannya:
// 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) }
Membuat Imej Baharu
Seterusnya, mari buat imej baharu yang luas untuk menampung kedua-dua imej yang dimuatkan. Tentukan dimensi kanvas baharu ini dengan menambah lebar kedua-dua imej:
r := image.Rectangle{image.Point{0, 0}, img1.Bounds().Dx() + img2.Bounds().Dx(), img1.Bounds().Dy()} rgba := image.NewRGBA(r)
Melukis Imej
Kini datang bahagian yang menyeronokkan: memasang imej dalam ini kanvas baharu. Tentukan kedudukan di mana anda ingin meletakkan imej kedua, dan kemudian lukis kedua-dua imej ke atas kanvas:
// 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)
Menyimpan Hasilnya
Akhir sekali, mari kita abadikan ini karya bercantum dengan menyimpannya sebagai fail imej baharu:
out, err := os.Create("./output.jpg") if err != nil { fmt.Println(err) } var opt jpeg.Options opt.Quality = 80 jpeg.Encode(out, rgba, &opt)
Itu sahaja! Anda telah berjaya menggabungkan berbilang imej menjadi satu keseluruhan yang padu. Majulah dan takluki dunia manipulasi imej.
Atas ialah kandungan terperinci Bagaimana untuk Menggabungkan Imej dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!