image2 (i2)
목표는 I1과 i2를 특정 각도로 배치하고 최종 이미지를 만드는 것입니다. i1 및 i2의 좌표는 회전 각도와 함께 제공됩니다. i1과 i2는 부분적으로 겹칠 수 있지만 z-index는 전경에 어떤 이미지가 나타나야하는지를 결정합니다.
Package Main 수입 (수입) "FMT" "OS" "이미지/드로우" "영상" "이미지/jpeg" "code.google.com/p/graphics-go/graphics" )) func main () { fimg1, _ : = os.open ( "Arrow1.jpg") fimg1.close ()를 연기 img1, _, _ : = image.decode (fimg1) fimg2, _ : = os.open ( "arrow2.jpg") 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") toimg.close ()를 연기 jpeg.encode (toimg, m, & jpeg.options {jpeg.defaultquality}) }
이 예에서 :
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}) }
두 이미지 인 "Arrow1.jpg"및 "arrow2.jpg"는 메모리에로드됩니다. 원산지.
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3