"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment concaténer plusieurs images horizontalement en Python à l'aide de Pillow ?

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

Publié le 2024-11-06
Parcourir:542

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 :

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')

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.
Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3