Maison >développement back-end >Tutoriel Python >Comment combiner plusieurs images horizontalement en Python sans problèmes de chevauchement ?

Comment combiner plusieurs images horizontalement en Python sans problèmes de chevauchement ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-10-25 08:23:02418parcourir

How to Combine Multiple Images Horizontally in Python Without Overlapping Issues?

Combinaison d'images horizontalement en Python

Cet article aborde le problème de la combinaison horizontale de plusieurs images JPEG en Python.

Problème :

L'utilisateur dispose de trois images de dimensions égales (148 x 95) et tente de les combiner horizontalement à l'aide du code fourni. Cependant, la sortie comporte des images partielles supplémentaires chevauchant les sous-images précédentes.

Solution :

Pour résoudre ce problème, nous pouvons utiliser le code modifié suivant :

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

images = [Image.open(x) for x in ['Test1.jpg', 'Test2.jpg', 'Test3.jpg']]
widths, heights = zip(*(i.size for i in images))

total_width = sum(widths)
max_height = max(heights)

new_im = Image.new('RGB', (total_width, max_height))

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

new_im.save('combined_horizontally.jpg')</code>

Ce code accomplit les tâches suivantes :

  • Ouvre les images d'entrée et détermine leurs largeurs et hauteurs.
  • Calcule la largeur totale et la hauteur maximale de l'image combinée.
  • Crée une nouvelle image avec les dimensions calculées.
  • Colle chaque image d'entrée horizontalement dans la nouvelle image avec un décalage approprié.
  • Enregistre l'image combinée sous combiné_horizontally.jpg.

Considérations supplémentaires :

  • Le code détermine dynamiquement les dimensions de l'image, lui permettant de gérer des images de différentes tailles.
  • Il spécifie les dimensions sur une seule ligne, ce qui facilite les ajustements si nécessaire.
  • En utilisant la fonction max pour déterminer la hauteur maximale, l'image combinée s'adaptera à toutes les images d'entrée, même si elles ont des hauteurs différentes.

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