"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > 언어 이미지 회전 및 병합 기술로 이동하십시오

언어 이미지 회전 및 병합 기술로 이동하십시오

2025-04-12에 게시되었습니다
검색:856

How Can I Combine and Rotate Images in Go?

go

문제

문제

image2 (i2)

목표는 I1과 i2를 특정 각도로 배치하고 최종 이미지를 만드는 것입니다. i1 및 i2의 좌표는 회전 각도와 함께 제공됩니다. i1과 i2는 부분적으로 겹칠 수 있지만 z-index는 전경에 어떤 이미지가 나타나야하는지를 결정합니다.

작업은 Golang 에서이 기능을 달성하는 것입니다. (http://golang.org/doc/articles/image_draw.html).

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"는 메모리에로드됩니다. 원산지.
  • 두 번째 이미지 인 "IMG2"는 특정 각도 및 오프셋으로 "M"으로 회전하고 그려집니다. 자세한 내용은 문서를 참조하십시오.
최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3