2015-10-13 18 views
14

Ich habe ein Bild im PIL-Bildformat. Ich muss es in Byte-Array konvertieren.PIL-Bild in Byte-Array konvertieren?

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

Jetzt brauche ich die roiImg als Byte-Array.

+2

Bitte liefern Sie weitere Einzelheiten. In welchem ​​Format soll das Byte-Array sein? Die Rohpixelwerte sind über 'Image.getdata()' verfügbar, wodurch die interne Darstellung zurückgegeben wird, die PIL für ein Bild in einem bestimmten Format auf einer bestimmten Plattform verwendet. – dhke

+0

Nicht sicher, aber es klingt, als müssten Sie die 'Image's [' getdata() '] (http://pillow.readthedocs.org/en/3.0.x/reference/Image.html#PIL) verwenden. Image.Image.getdata) -Methode. – martineau

+0

Mein Ziel ist es, das Bild in der MySQL-Datenbank als BLOB-Typ zu speichern. –

Antwort

34

Vielen Dank für Ihre Hilfe.

Endlich ist es gelöst !!

import io 

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

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

Damit muss ich zugeschnittene Bild nicht das beschnittene Bild in meiner Festplatte speichern, und ich bin in der Lage, die Byte-Array aus einem PIL abzurufen.

+0

Vielen Dank für dieses Beispiel! Ich habe gerade versucht, genau dasselbe zu tun. – statueofmike

+0

können Sie bitte Import io hinzufügen? –

+0

Box ist nicht definiert. –