Rumah >pembangunan bahagian belakang >Golang >Bagaimanakah Saya Boleh Menggabungkan dan Memutar Imej dalam Go?
Pertimbangkan senario berikut:
Matlamatnya adalah untuk meletakkan i1 dan i2 di atas bi pada sudut tertentu dan mencipta imej akhir. Koordinat untuk i1 dan i2 disediakan bersama dengan sudut putaran mereka. i1 dan i2 mungkin bertindih sebahagiannya, tetapi indeks-z menentukan imej yang harus muncul di latar depan.
Tugasnya ialah untuk mencapai fungsi ini dalam Golang.
Pakej imej Go menawarkan keupayaan manipulasi imej, seperti yang diterangkan dalam "Lukisan Imej dalam Go" (http://golang.org/doc/articles/image_draw.html).
Untuk menggabungkan imej dengan putaran, pakej tambahan yang dipanggil graphics-go disyorkan. Berikut ialah contoh program Go yang menunjukkan gabungan dua imej dengan putaran:
package main import ( "fmt" "os" "image/draw" "image" "image/jpeg" "code.google.com/p/graphics-go/graphics" ) func main() { fImg1, _ := os.Open("arrow1.jpg") defer fImg1.Close() img1, _, _ := image.Decode(fImg1) fImg2, _ := os.Open("arrow2.jpg") defer fImg2.Close() img2, _, _ := image.Decode(fImg2) m := image.NewRGBA(image.Rect(0, 0, 800, 600)) draw.Draw(m, m.Bounds(), img1, image.Point{0,0}, draw.Src) //draw.Draw(m, m.Bounds(), img2, image.Point{-200,-200}, draw.Src) graphics.Rotate(m, img2, &graphics.RotateOptions{3.5}) toimg, _ := os.Create("new.jpg") defer toimg.Close() jpeg.Encode(toimg, m, &jpeg.Options{jpeg.DefaultQuality}) }
Dalam contoh ini:
Ia penting ambil perhatian bahawa pakej graphics-go bergantung pada perpustakaan luaran yang mungkin memerlukan pemasangan dan persediaan. Rujuk dokumentasinya untuk butiran.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menggabungkan dan Memutar Imej dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!