Maison  >  Article  >  développement back-end  >  Comment combiner des images horizontalement en Python sans segments partiels ?

Comment combiner des images horizontalement en Python sans segments partiels ?

Barbara Streisand
Barbara Streisandoriginal
2024-10-25 16:32:42943parcourir

How to Combine Images Horizontally in Python Without Partial Segments?

Combinaison d'images horizontalement en Python

Dans le but de combiner horizontalement plusieurs images JPEG, vous pouvez rencontrer des défis tels que des images partielles supplémentaires apparaissant dans la sortie. Voici une solution qui résout ce problème.

Problème :

Vous disposez de trois images de 148 x 95 pixels et vous souhaitez les combiner horizontalement sans aucun segment supplémentaire indésirable.

Solution :

  1. Calculer les dimensions :

    • Obtenir les largeurs et les hauteurs de toutes les images sous forme de liste de tuples à l'aide de la fonction zip.
    • Déterminez la largeur totale en additionnant les largeurs et la hauteur maximale en trouvant la hauteur maximale.
  2. Créer une nouvelle image :

    • Créez une nouvelle image avec les dimensions calculées à l'étape 1 à l'aide de la méthode Image.new.
  3. Coller les images :

    • Initialisez un décalage de coordonnée X à 0.
    • Parcourez chaque image de la liste d'origine.
    • Collez l'image actuelle sur la nouvelle image au niveau du décalage et définissez le décalage sur la largeur de l'image actuelle.

Utilisation de ce code modifié :

<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('test.jpg')</code>

produira l'image combinée horizontalement souhaitée sans aucun segment partiel.

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