[Python] Ottenere il bytestream di un immagine da PIL

Luca lucafbb a gmail.com
Mer 3 Ott 2007 12:09:21 CEST


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...

Cioò che faccio è:

            newi = Image.open(file_img)
            newi.paste(...) # modifica immagine

            response.setHeader('content-type','image/png')
            response.write(newi.tostring())
            file_img.close()

Avete suggerimenti o devo per forza creare un file temporaneo con
l'uso di Image.save?


Maggiori informazioni sulla lista Python