"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 > Como concatenar imagens no Go?

Como concatenar imagens no Go?

Publicado em 2024-11-09
Navegar:497

How to Concatenate Images in Go?

Concatenar imagens no Go: um guia abrangente

No Go, manipular imagens é muito fácil graças às suas poderosas bibliotecas de imagens. No entanto, se você quiser mesclar várias imagens em uma tela grande, as coisas podem ficar confusas. Aqui está um guia passo a passo para lidar com essa tarefa como um profissional.

Carregando imagens

Para começar, carregue as imagens que deseja concatenar. Aqui está um trecho de código para fazer isso:

// Open the first image
imgFile1, err := os.Open("test1.jpg")
if err != nil {
    fmt.Println(err)
}
// Decode the image
img1, _, err := image.Decode(imgFile1)
if err != nil {
    fmt.Println(err)
}

// Open the second image
imgFile2, err := os.Open("test2.jpg")
if err != nil {
    fmt.Println(err)
}
// Decode the image
img2, _, err := image.Decode(imgFile2)
if err != nil {
    fmt.Println(err)
}

Criando uma nova imagem

Em seguida, vamos criar uma nova imagem espaçosa para acomodar ambas as imagens carregadas. Determine as dimensões desta nova tela adicionando as larguras de ambas as imagens:

r := image.Rectangle{image.Point{0, 0}, img1.Bounds().Dx()   img2.Bounds().Dx(), img1.Bounds().Dy()}
rgba := image.NewRGBA(r)

Desenhando as Imagens

Agora vem a parte divertida: montar as imagens dentro deste novo canvas. Determine a posição onde deseja colocar a segunda imagem e desenhe ambas as imagens na tela:

// Starting point of the second image (bottom left)
sp2 := image.Point{img1.Bounds().Dx(), 0}
// Rectangle for the second image
r2 := image.Rectangle{sp2, sp2.Add(img2.Bounds().Size())}

// Draw the first image
draw.Draw(rgba, img1.Bounds(), img1, image.Point{0, 0}, draw.Src)
// Draw the second image
draw.Draw(rgba, r2, img2, image.Point{0, 0}, draw.Src)

Salvando o resultado

Finalmente, vamos imortalizar este concatenado obra-prima salvando-a como um novo arquivo de imagem:

out, err := os.Create("./output.jpg")
if err != nil {
    fmt.Println(err)
}

var opt jpeg.Options
opt.Quality = 80

jpeg.Encode(out, rgba, &opt)

É isso aí! Você mesclou com sucesso várias imagens em um todo coeso. Vá em frente e conquiste o mundo da manipulação de imagens.

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