Maison >développement back-end >Golang >Comment puis-je superposer et faire pivoter des images dans Golang ?

Comment puis-je superposer et faire pivoter des images dans Golang ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-27 15:08:18380parcourir

How Can I Overlay and Rotate Images in Golang?

Manipulation d'images dans Golang

Dans Golang, la manipulation d'images est possible grâce au package image. Ce package fournit les outils nécessaires pour dessiner, redimensionner et transformer des images.

Contexte du problème

Considérez trois images : une image d'arrière-plan (bi) et deux autres images (i1 et i2). L'objectif est de positionner i1 et i2 sur bi à des angles spécifiques, garantissant un placement correct en fonction de leurs valeurs d'index z.

Solution

Pour y parvenir, Golang propose le package Graphics-go, qui prend en charge les rotations d’images. Le pseudo-programme suivant présente la solution :

import (
    "image"
    "image/jpeg"
    "os"
    "code.google.com/p/graphics-go/graphics"
)

func main() {
    // Load the images
    img1, _, _ := image.Decode(os.Open("image1.jpg"))
    img2, _, _ = image.Decode(os.Open("image2.jpg"))

    // Create a new image canvas
    m := image.NewRGBA(image.Rect(0, 0, 800, 600))

    // Draw the background image
    draw.Draw(m, m.Bounds(), img1, image.Point{0, 0}, draw.Src)

    // Apply rotation to the second image
    graphics.Rotate(m, img2, &graphics.RotateOptions{Angle: 3.5})

    // Save the final image
    jpeg.Encode(os.Create("final-image.jpg"), m, &jpeg.Options{jpeg.DefaultQuality})
}

Remarques :

  • Le package image fournit des fonctionnalités pour dessiner et transformer des images.
  • Le graphisme-go Le package offre une prise en charge supplémentaire pour les rotations d'images.
  • Le pseudo-programme fourni démontre les principes de base de la manipulation d'images dans Golang.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn