Maison >développement back-end >Tutoriel Python >Comment concaténer plusieurs images horizontalement en Python à l'aide de Pillow ?

Comment concaténer plusieurs images horizontalement en Python à l'aide de Pillow ?

Linda Hamilton
Linda Hamiltonoriginal
2024-10-25 02:06:30802parcourir

How to Concatenate Multiple Images Horizontally in Python Using Pillow?

Concaténation d'images horizontalement avec Python

La combinaison de plusieurs images horizontalement est une tâche courante dans le traitement d'images. Python propose des outils puissants pour y parvenir en utilisant la bibliothèque Pillow.

Description du problème

Considérons trois images JPEG carrées de dimensions 148 x 95. L'objectif est de les concaténer horizontalement images tout en évitant toute image partielle dans la sortie résultante.

Solution suggérée

L'extrait de code suivant résout le problème :

<code class="python">import sys
from PIL import Image

# Get the images
images = [Image.open(x) for x in ['Test1.jpg', 'Test2.jpg', 'Test3.jpg']]

# Determine the total width and height
widths, heights = zip(*(i.size for i in images))
total_width = sum(widths)
max_height = max(heights)

# Create a new, empty image
new_im = Image.new('RGB', (total_width, max_height))

# Paste the images horizontally
x_offset = 0
for im in images:
    new_im.paste(im, (x_offset, 0))
    x_offset += im.size[0]

# Save the output image
new_im.save('test.jpg')</code>

Ce code parcourt les images d’entrée, déterminant leurs dimensions. Il crée une nouvelle image avec la largeur totale et la hauteur maximale de toutes les images. Chaque image d'entrée est collée horizontalement et leurs positions sont mises à jour en conséquence.

Considérations supplémentaires

  • Le code évite de coder en dur les dimensions de l'image en les calculant dynamiquement.
  • En spécifiant les dimensions sur une seule ligne, elles peuvent être facilement ajustées.
  • L'exemple fourni concatène trois images, mais le code peut être utilisé pour n'importe quel nombre d'images.

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