"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Vá para a rotação da imagem da linguagem e habilidades de mesclagem

Vá para a rotação da imagem da linguagem e habilidades de mesclagem

Postado em 2025-04-12
Navegar:521

How Can I Combine and Rotate Images in Go?

Manipulação da imagem com rotações usando go

Problem

Considere o seguinte cenário:

  • A BEMBUNDAGEM (Bi)
  • A BEDNIMAGEM (Bi)

A Fundamento Image (Bi)

(i2)

O objetivo é posicionar i1 e i2 sobre bi em ângulos específicos e criar uma imagem final. As coordenadas para I1 e I2 são fornecidas juntamente com seus ângulos de rotação. I1 e i2 podem se sobrepor parcialmente, mas um índice z determina qual imagem deve aparecer em primeiro plano. (http://golang.org/doc/articles/image_draw.html).

importação ( "FMT" "OS" "Imagem/desenho" "imagem" "Image/jpeg" "code.google.com/p/graphics-go/graphics" ) func main () { FIMG1, _: = os.open ("Arrow1.jpg") adiar fImg1.close () IMG1, _, _: = image.Decode (FIMG1) FIMG2, _: = os.open ("Arrow2.jpg") adiar 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") adiar toimg.close () JPEG.ENCODE (TOIMG, M, & JPEG.Options {jpeg.defaultQuality}) }

Neste exemplo:

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})
}
duas imagens, "Arrow1.jpg" e "Arrow2.jpg", são carregadas na memória. origem. Consulte sua documentação para obter detalhes.

Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3