CodeGym /Java Kurs /Python SELF DE /Zusammenführen und Kombinieren von Bildern

Zusammenführen und Kombinieren von Bildern

Python SELF DE
Level 45 , Lektion 3
Verfügbar

1. Vorbereitung

Bilder für die Kombination laden

Bevor du mit mehreren Bildern arbeiten kannst, musst du sie laden. Pillow ermöglicht die Arbeit mit den meisten gängigen Bildformaten wie JPEG, PNG, BMP und GIF.

Python

from PIL import Image

# Bilder laden
background = Image.open("background.jpg")
foreground = Image.open("foreground.png")

Hier laden wir zwei Bilder: ein Hintergrundbild und ein Bild für die Überlagerung. Es ist wichtig zu beachten, dass für einige Methoden beide Bilder die gleiche Größe haben müssen.

2. Überlagerung von Bildern

Methode paste()

Die Methode paste() ermöglicht das Einfügen eines Bildes auf ein anderes an den angegebenen Koordinaten. Diese Methode ist nützlich, wenn du ein Bild auf ein anderes überlagern oder einen Collage-Effekt erstellen möchtest.

Python

# Ändern der Größe des Vordergrundbilds, um es der Hintergrundgröße anzupassen
foreground = foreground.resize(background.size)

# Überlagerung des Vordergrundbildes über den Hintergrund
background.paste(foreground, (50, 50))  # Einfügen von foreground an den Koordinaten (50, 50)

# Ergebnis speichern
background.save("pasted_image.jpg")

Hier wird das Bild foreground auf background mit dem Startpunkt der Einfügung (50, 50) eingefügt. Wenn der Vordergrund über die Grenzen des Hintergrunds hinausgeht, wird er teilweise abgeschnitten.

Verwendung einer Maske mit paste()

Die Methode paste() unterstützt auch Masken, die es ermöglichen, ein Bild teilweise zu überlagern und dabei die transparenten Bereiche beizubehalten. Die Maske muss im Modus L (Graustufen) oder RGBA vorliegen.

Python

# Maske erstellen
mask = Image.open("mask.png").convert("L")  # Konvertieren der Maske in Graustufen

# Bild mit Maske einfügen
background.paste(foreground, (50, 50), mask=mask)
background.save("pasted_with_mask.jpg")

Die Maske mask.png definiert, welche Teile des Bildes foreground sichtbar sind, und ermöglicht es, ein Bild sauber auf ein anderes zu überlagern.

3. Bilder mischen

Methode blend()

Die Methode blend() ermöglicht das Mischen von zwei Bildern mit einer bestimmten Transparenz. Diese Methode erstellt ein neues Bildobjekt, das eine Mischung der beiden ursprünglichen Bilder darstellt. Um blend() zu verwenden, müssen beide Bilder die gleiche Größe haben.

Einfache Bildmischung

Python

# Ändern der Größe der Bilder auf die gleiche Größe
background = background.resize((500, 500))
foreground = foreground.resize((500, 500))

# Bilder mit Transparenzfaktor mischen
blended_image = Image.blend(background, foreground, alpha=0.5)

# Ergebnis speichern
blended_image.save("blended_image.jpg")

Der Parameter alpha gibt den Transparenzgrad des Bildes foreground an. Wenn alpha = 0.5 ist, werden die Bilder gleichmäßig gemischt. Der Wert alpha = 0.0 macht das Bild foreground vollständig transparent (nur der Hintergrund ist sichtbar), während alpha = 1.0 das Hintergrundbild vollständig transparent macht (nur der Vordergrund ist sichtbar).

4. Bildkomposition mit Maske

Methode composite()

Die Methode composite() ermöglicht es, zwei Bilder basierend auf einer Maske zu kombinieren, die bestimmt, welche Teile welches Bildes sichtbar sind. Diese Methode ist sehr nützlich, um komplexe Kompositionen zu erstellen und ein Bild präzise auf ein anderes zu überlagern.

Beispiel: Verwendung von composite() zur Kombination von Bildern

Python

# Sicherstellen, dass beide Bilder und die Maske die gleiche Größe haben
background = background.resize((500, 500))
foreground = foreground.resize((500, 500))
mask = mask.resize((500, 500))

# Bildkomposition mit Maske erstellen
composited_image = Image.composite(foreground, background, mask)

# Ergebnis speichern
composited_image.save("composited_image.jpg")

Die Maske bestimmt, welche Teile von foreground und background im endgültigen Bild sichtbar sind. Weiße Bereiche in der Maske machen foreground sichtbar, schwarze Bereiche background.

5. Beispiele

Beispiel für die kombinierte Verwendung der Methoden paste(), blend() und composite()

Jetzt kombinieren wir diese Methoden, um eine komplexere Komposition zu erstellen. Angenommen, wir haben einen Hintergrund, ein Bild mit Transparenz und eine Maske.

Python

from PIL import Image

# Bilder laden
background = Image.open("background.jpg").resize((500, 500))
foreground = Image.open("foreground.png").resize((500, 500))
mask = Image.open("mask.png").convert("L").resize((500, 500))

# 1. Mischen von Hintergrund und Vordergrund mit Transparenz
blended_image = Image.blend(background, foreground, alpha=0.3)

# 2. Überlagerung mit Maske auf das endgültige Bild
final_composite = Image.composite(foreground, blended_image, mask)

# Endergebnis speichern
final_composite.save("final_composition.jpg")

Dieses Beispiel zeigt, wie du blend() und composite() nacheinander anwenden kannst, um mehrschichtige Kompositionen zu erstellen.

Praktische Anwendung der Methoden zur Bildkombination

  1. Erstellen von Collagen: Die Methode paste() ermöglicht es, mehrere Bilder auf einer Leinwand hinzuzufügen, um Collagen und Mosaiken zu erstellen.
  2. Überlagerungs- und Transparenzeffekte: Die Methode blend() bietet die Möglichkeit, weiche Übergänge zwischen Bildern zu erzeugen, was für Fotobearbeitung und Effekterstellung nützlich ist.
  3. Kompositionen mit Masken: Die Methode composite() ermöglicht präzises Management, welche Teile eines Bildes sichtbar sind, und komplexe Kompositionen mit Masken zu erstellen.

Vergleich der Methoden

Methode Beschreibung Anwendung
paste() Ein Bild wird über ein anderes gelegt Collagen, Platzieren eines Bildes auf einem anderen
blend() Zwei Bilder werden mit einer bestimmten Transparenz gemischt Weiche Übergänge und Überlagerungseffekte
composite() Kombiniert zwei Bilder basierend auf einer Maske Komplexe Kompositionen und präzise Überlagerung
Kommentare
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION