2012-01-11 21 views
12

Sorun, jpeg kodlu görüntüyü bellekten yüklemek.Python Görüntüleme: jpeg'yi bellekten yükle

Ben soketinden bir dize alırsınız:

jpgdata = self.rfile.read(sz) 

ve ben bu jpeg olarak kodlanmış görüntü olduğunu biliyoruz.

Kod çözmem gerekiyor. en aptalca çözümdür:

o = open("Output/1.jpg","wb") 
o.write(jpgdata) 
o.close() 
dt = Image.open("Output/1.jpg") 

soru aynı şeyi bellek yapmak nasıl?

cevap

15

PIL's Image.open nesnesi, dosya benzeri bir nesneyi kabul eder. Yani bir StringIO nesne üzerinde Görüntü verileri sarın ve

from cStringIO import StringIO 
file_jpgdata = StringIO(jpgdata) 
dt = Image.open(file_jpgdata) 

Image.Open Ya da, sadece Image.open bir argüman olarak self.rfile geçen denemek için geçmesi anlamına gelir - bu sadece de işe yarayabilir. (Bu Python 2 içindir - Python 3 kullanımı için from io import BytesIO)

0

StringIO kullanın, böylece görüntü verileriniz bir dosyaymış gibi erişebilir.

İlgili konular