2015-10-13 33 views
14

Ho un'immagine in formato immagine PIL. Ho bisogno di convertirlo in array di byte.Converta immagine PIL in serie di byte?

img = Image.open(fh, mode='r') 
roiImg = img.crop(box) 

Ora ho bisogno dello roiImg come array di byte.

+2

Si prega di fornire maggiori dettagli. In che formato si suppone che sia la matrice di byte? I valori dei pixel grezzi sono disponibili tramite 'Image.getdata()', che restituisce la rappresentazione interna che PIL utilizza per un'immagine in un formato particolare su una piattaforma particolare. – dhke

+0

Non sono sicuro, ma sembra che tu debba usare il ''Immagine' ['getdata()'] (http://pillow.readthedocs.org/en/3.0.x/reference/Image.html#PIL. Image.Image.getdata) metodo. – martineau

+0

Il mio obiettivo è salvare l'immagine nel database mysql come tipo BLOB. –

risposta

34

Grazie a tutti per il vostro aiuto.

Finalmente risolto !!

import io 

img = Image.open(fh, mode='r') 
roiImg = img.crop(box) 

imgByteArr = io.BytesIO() 
roiImg.save(imgByteArr, format='PNG') 
imgByteArr = imgByteArr.getvalue() 

Con questo non ho per salvare l'immagine ritagliata nel mio disco rigido e sono in grado di recuperare l'array di byte da un PIL immagine ritagliata.

+0

Grazie per questo esempio! Stavo solo cercando di fare esattamente la stessa cosa. – statueofmike

+0

puoi aggiungere import io? –

+0

casella non è definita. –