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

Rispondere a