Heim >Backend-Entwicklung >Python-Tutorial >Wie kombiniere ich Bilder in Python horizontal ohne Teilsegmente?

Wie kombiniere ich Bilder in Python horizontal ohne Teilsegmente?

Barbara Streisand
Barbara StreisandOriginal
2024-10-25 16:32:421052Durchsuche

How to Combine Images Horizontally in Python Without Partial Segments?

Bilder horizontal in Python kombinieren

Wenn Sie mehrere JPEG-Bilder horizontal kombinieren möchten, können Sie auf Herausforderungen stoßen, wie z. B. das Erscheinen zusätzlicher Teilbilder in der Ausgabe. Hier ist eine Lösung, die dieses Problem behebt.

Problem:

Sie haben drei Bilder mit 148 x 95 Pixeln und möchten sie horizontal ohne unerwünschte zusätzliche Segmente kombinieren.

Lösung:

  1. Abmessungen berechnen:

    • Ermitteln Sie die Breiten und Höhen von Alle Bilder als Liste von Tupeln mithilfe der Zip-Funktion.
    • Bestimmen Sie die Gesamtbreite, indem Sie die Breiten summieren, und die maximale Höhe, indem Sie die maximale Höhe ermitteln.
  2. Neues Bild erstellen:

    • Erstellen Sie ein neues Bild mit den in Schritt 1 berechneten Abmessungen mithilfe der Image.new-Methode.
  3. Bilder einfügen:

    • Initialisieren Sie einen X-Koordinaten-Offset auf 0.
    • Durchlaufen Sie jedes Bild in der Originalliste.
    • Fügen Sie das aktuelle Bild mit dem Versatz in das neue Bild ein und stellen Sie den Versatz auf die Breite des aktuellen Bildes ein.

Mit diesem geänderten Code:

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

erzeugt das gewünschte horizontal kombinierte Bild ohne Teilsegmente.

Das obige ist der detaillierte Inhalt vonWie kombiniere ich Bilder in Python horizontal ohne Teilsegmente?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn