Bilder mit PIL für Web.py erzeugen

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
Antworten
Blutorange
User
Beiträge: 3
Registriert: Donnerstag 16. August 2007, 09:16

Moinmoin,
ich habe ein kleines Problem mit PIL, und zwar möchte ich für Web.py eine Klasse schreiben, die ein Bild aus diverse kleineren Bildern zusammen setzt (das ist kein Problem), es dann aber mit nem Header einfach das ganze wie mit print o.Ä. ausgibt.

Zur erklaerung noch mal ein Beispiel:
ich versuche auf /dynimages/1-6-9.gif zuzugreifen

/dynimages/(.*) wird von einer Klasse namens Dynimage verwaltet.
Dynimage sucht sich nun die Dateien 1.gif, 6.gif, und 9.gif und setzt sie wie ichs mir vorstelle zusammen.
Dann kommt jedoch das Problem, ich schaffe es nicht, dass ich das irgendwie an den Browser geschickt bekomme, sondern kanns nur mit einem standart Programm oeffnen lassen oder per stdout ausgeben lassen, was leider auch nichts bringt.

Ich hoffe man versteht in etwas was ich meine.

MfG
Jorn
User
Beiträge: 13
Registriert: Donnerstag 16. August 2007, 10:08

Hallo Blutorange,

Ich weiss nicht was web.py ist,
aber vielleicht hilft ja

start_response("200 OK", ['Content-Type', 'image/jpeg'])

+

senden des Bildes in Binärform weiter ??

Jorn
Zuletzt geändert von Jorn am Donnerstag 16. August 2007, 12:23, insgesamt 1-mal geändert.
Blutorange
User
Beiträge: 3
Registriert: Donnerstag 16. August 2007, 09:16

web.py is n framework fuer web applikationen in python

mein Problem ist eigentlich nur, wie ich das PIL Image Objekt als Binärform ausgebe, weil ich bis jetzt nur gefunden habe, wie ich es in nem Graphikeditor öffnen kann, bzw an stdout schicke, aber halt nicht an den http request dann.

Oder gibt es sonst ein zu PIL ähnliches Modul, wo jemand weiß, wie das dort funktioniert ?

MfG
Jorn
User
Beiträge: 13
Registriert: Donnerstag 16. August 2007, 10:08

..mit Binärform mein ich z.b.

f = open("bild.jpg","rb") # rb = Read Binary
bildbinaer = f.read()
f.close()

.. nun ist in "bildbinear" das Bild in binärform bereit zur Ausgabe.
Y0Gi
User
Beiträge: 1454
Registriert: Freitag 22. September 2006, 23:05
Wohnort: ja

Wie wäre es damit?

Code: Alles auswählen

from StringIO import StringIO

f = StringIO()
im.save(f, format='jpeg')  # oder 'jpg', kA
image_data = f.getvalue()
f.close()

start_response('200 OK', ['Content-Type', 'image/jpeg']) 
return [image_data]
dev
User
Beiträge: 49
Registriert: Montag 23. Januar 2006, 09:52
Kontaktdaten:

oder so:

Code: Alles auswählen

image_data = im.convert("RGB").tostring("jpeg","RGB")
Siehe PIL Handbuch Abschnitt tostring

Ciao,
dev

PS: Ob das .convert bei Dir notwendig ist mußt Du für Deinen Fall überprüfen.
Blutorange
User
Beiträge: 3
Registriert: Donnerstag 16. August 2007, 09:16

danke dev (und auch alle anderen),
das war genau das, was ich gesucht habe, aber irgendwie war ich zu blind es zu finden D:
Antworten