Luca ha scritto:
Salve a tutti.
Ho la necessità di caricare un'immagine PNG utilizzando PIL e
modificarla leggermente.
Una volta eseguita al modifica, se uso le funzioni di PIL per la
generazione di una nuova immagine su filesystem le cose sono ok.
Ciò che però devo veramente fare è inviare il bytestream dell'immagine
tramite la la rete. Per fare questo non volevo salvare l'immagine su
filesystem (dato che è temporanea) ma credevo di poterlo fare
ottenendo il sorgente dell'immagine direttamente dall'oggetto Image.
Purtroppo ciò che ottengo dall'uso di Image.tostring (unico metodo che
pare fare al caso mio) è un bytestream estremamente più grande, e non
comunque un'immagine corretta...
Hai letto la documentazione del metodo tostring?
http://www.pythonware.com/library/pil/handbook/image.htm
Senza parametri aggiuntivi dovrebbe restituire il contenuto RAW
dell'immagine.
Purtroppo nella documentazione non viene spiegato cosa passare come
"encoder", comunque una veloce ricerca fornisce:
http://mail.python.org/pipermail/image-sig/2004-September/002908.html
Prova a fare .tostring('jpeg') e vedi cosa succede.
Se non funziona salva l'immagine in un file temporaneo e, se usi WSGI,
usa l'estensione wsgi.file_wrapper, in modo che, se sei fortunato, viene
usato sendfile, in modo da evitare di copiare due volte il buffer tra
memoria <-> filesystem.
> [...]
Saluti Manlio Perillo
_______________________________________________
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python