다음 시나리오를 고려하십시오.
i1과 i2를 특정 각도에서 bi 위에 배치하여 최종 이미지를 만드는 것이 목표입니다. i1 및 i2의 좌표는 회전 각도와 함께 제공됩니다. i1과 i2는 부분적으로 겹칠 수 있지만 z-index는 어떤 이미지가 전경에 표시되어야 하는지를 결정합니다.
이 작업은 Golang에서 이 기능을 구현하는 것입니다.
Go 이미지 패키지는 "Go의 이미지 그리기"에 설명된 대로 이미지 조작 기능을 제공합니다. (http://golang.org/doc/articles/image_draw.html).
이미지를 회전과 결합하려면 Graphics-go라는 보조 패키지를 권장합니다. 다음은 회전이 포함된 두 이미지의 조합을 보여주는 샘플 Go 프로그램입니다.
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}) }
이 예에서는:
graphic-go 패키지는 설치 및 설정이 필요할 수 있는 외부 라이브러리에 의존합니다. 자세한 내용은 해당 설명서를 참조하세요.
위 내용은 Go에서 어떻게 이미지를 결합하고 회전할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!