Seite 1 von 1
PIL Bild Zusammenfügen
Verfasst: Sonntag 21. März 2010, 15:25
von luxor
Hallo Zusammen,
ich bin recht neu in der Python Welt und stehe nun vor einem kleinen Problem wo mir Google und die Forums suche leider nicht helfen konnte.
Ich habe 3 Bilder
BildA 100Bx100H Pixel
BildB 100Bx100H Pixel
BildC 100Bx100H Pixel
Ich möchte diese drei Bilder nun neben ein anderer Zusammenfügen.
Also BildABildBBildC mit der Auflösung 300Bx100H Pixel.
Das ist doch sicher möglich oder?
Luxor
Verfasst: Sonntag 21. März 2010, 16:00
von tjuXx
ja das geht sicher.
versuche es mal so:
- neues Bild erstellen(in entsprechender Größe)
- dann die Bilder an der gewünschten stelle einfügen: im.paste(image, box)
http://www.pythonware.com/library/pil/h ... /image.htm
Re: PIL Bild Zusammenfügen
Verfasst: Sonntag 21. März 2010, 16:02
von /me
luxor hat geschrieben:Ich möchte diese drei Bilder nun neben ein anderer Zusammenfügen.
Also BildABildBBildC mit der Auflösung 300Bx100H Pixel.
Womit hast du denn konkret die Probleme?
In der
PIL Dokumentation findet man ja recht gut wie man ein neues Bild erstellt und auch die paste-Methode ist ordentlich erklärt.
Verfasst: Sonntag 21. März 2010, 16:41
von luxor
Also ich habe nun ein kleines Script (erst mal mit 2 Bilder)
Code: Alles auswählen
from PIL import Image
imageWidth=1280
imageHeight=480
im = Image.new("RGB", (imageWidth, imageHeight))
bilda = Image.open("1.jpg")
bildb = Image.open("2.jpg")
im.paste(bilda, (0,0,640,480))
im.paste(bildb, (0,0,640,480))
im.save("/var/www/test.jpg", "JPEG")
Wenn ich das nun mache klappt das wunderbar.
Aber noch sind ja beide Bilder an der gleichen Position und man kann nur eins sehen.
Sobald ich nun das im.paste(bildb, (0,0,640,480)) auf im.paste(bildb, (640,0,640,480)) ändere damit die Bilder neben ein andere sind bekomme ich:
Code: Alles auswählen
Traceback (most recent call last):
File "test.py", line 14, in <module>
im.paste(bildb, (640,0,640,480))
File "/usr/lib/python2.6/dist-packages/PIL/Image.py", line 1103, in paste
self.im.paste(im, box)
ValueError: images do not match
Das ist nun mein Problem
Problem gelöst.
Mit
im.paste(bilda, (0,0))
im.paste(bildb, (640,0))
Klappt es.
Danke euch!
Verfasst: Sonntag 21. März 2010, 17:00
von b.esser-wisser
PIL docs hat geschrieben:Pastes another image into this image. The box argument is either a 2-tuple giving the upper left corner, a 4-tuple defining the left, upper, right, and lower pixel coordinate, or None (same as (0, 0)). If a 4-tuple is given, the size of the pasted image must match the size of the region.
Der Parameter "box" besteht nicht aus (x, y, breite, höhe) sondern (x, y, x+breite, y+höhe), gezählt (wie bei Bildschirmen üblich) von oben links.
hth, Jörg