Rumah > pembangunan bahagian belakang > Golang > Bagaimana untuk Menggabungkan Imej dalam Go?

Bagaimana untuk Menggabungkan Imej dalam Go?

DDD
Lepaskan: 2024-11-07 01:45:03
asal
1048 orang telah melayarinya

How to Concatenate Images in 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)
}
Salin selepas log masuk

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)
Salin selepas log masuk

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)
Salin selepas log masuk

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)
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan