Maison  >  Article  >  développement back-end  >  Comment puis-je concaténer plusieurs images en une seule image à l’aide du package d’images Go ?

Comment puis-je concaténer plusieurs images en une seule image à l’aide du package d’images Go ?

DDD
DDDoriginal
2024-11-06 16:02:03804parcourir

How can I concatenate multiple images into a single image using the Go image package?

Concaténation d'images dans Go

Concaténer plusieurs images en une seule image plus grande est un scénario courant dans le traitement d'images. Dans Go, cela est simple à l'aide du package d'images.

Création d'une image vide

Tout d'abord, créez une nouvelle image avec des dimensions suffisamment grandes pour accueillir toutes les images plus petites.

newImage := image.NewRGBA(image.Rect(0, 0, totalWidth, maxHeight))

Ici, totalWidth est la largeur combinée des images plus petites et maxHeight est la hauteur maximale entre elles.

Dessiner les images plus petites

Ensuite, dessinez chaque image plus petite sur la nouvelle image. Déterminez le point de départ et le rectangle appropriés pour chaque image.

for _, img := range smallerImages {
    offset := point{dx, 0}  // offset of the current image
    
    r := img.Bounds() // rectangle of the smaller image

    newImage.Draw(image.Rect(offset.X, offset.Y, offset.X+r.Dx(), offset.Y+r.Dy()), img, r.Min, draw.Src)
    
    dx += r.Dx() // update the x coordinate for the next image
}

Exportation de l'image concaténée

Enfin, exportez l'image concaténée vers un fichier ou un flux.

out, err := os.Create("output.png")
if err != nil {
    return err
}

if err := png.Encode(out, newImage); err != nil {
    return err
}

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