9 Stimmen

Wie kann man mit PIL ein Bild ausschneiden und in ein anderes einfügen?

Mit PIL versuche ich, ein Rechteck aus einem Bild zu kopieren und es in ein anderes einzufügen. Dies ist mein Code:

import Image
ii = Image.open("ramza.png")
box = (70, 70, 30, 30)
region = ii.crop(box)
io = Image.open("template.png")
io.paste(region, box)
io.save("output.png")

Und ich erhalte diesen Fehler:

ValueError: Bilder stimmen nicht überein

Kennt jemand von Ihnen eine Lösung für dieses Problem?

16voto

samplebias Punkte 35688

Ein PIL-Zuschnittfeld ist definiert als ein 4er-Tupel von Pixelkoordinaten: (left, upper, right, lower) .

Korrigieren Sie Ihren Code, um einen 30x30-Ausschnitt zu erhalten:

box = (70, 70, 100, 100)

Aufgeschlüsselt in Komponenten:

x, y, w, h = (70, 70, 30, 30)
box = (x, y, x + w, y + h)

4voto

David Wolever Punkte 138377

Für zukünftige Besucher: Dieser Fehler kann auch auftreten, wenn die box Argument zu paste enthält float s anstelle von int s.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X