Python Imaging: chargement de fichiers JPEG depuis la mémoire
Le problème est à la charge jpeg-image encodée à partir de la mémoire.
- Je recevoir une chaîne de caractères à partir de socket:
jpgdata = self.rfile.read(sz)
et je sais que c'est jpeg-image encodée.
J'ai besoin de le décoder.
Le plus stupide de la solution est:
o = open("Output/1.jpg","wb")
o.write(jpgdata)
o.close()
dt = Image.open("Output/1.jpg")
La question est de savoir comment faire la même chose en mémoire?
source d'informationauteur user1038085
Vous devez vous connecter pour publier un commentaire.
PIL de l'Image.ouvrir l'objet accepte n'importe quel fichier comme objet. Cela signifie que vous pouvez envelopper vos données d'Image sur un StringIO objet, et de le transmettre à l'Image.Ouvrir
Ou, essayez juste de passage
self.rfile
comme un argument à l'Image.elle pourrait fonctionner tout aussi bien. (C'est pour Python 2 - pour Python 3 utilisationfrom io import BytesIO
)Utilisation StringIO de l'Image peut accéder à vos données comme si c'était un fichier.