2011-01-07 15 views
9

Daha spesifik olarak, bir Django ImageField aracılığıyla yüklenen bir resmin filetype'ını değiştirmek istiyorum.Bellek içi dosyadan PIL Görüntüsü nasıl oluşturulabilir?

Geçerli düşüncem, özel bir ImageField oluşturup dosyayı değiştirmek için kaydetme yönteminin üzerine yazmak.

PIL Image örneğinden dolayı bir bellek dosyasında sorun yaşamaya başladım.

Yardımlarınız için teşekkürler.

cevap

11

Not görüyoruz.

stream = imagefield.open() 
image = Image.open(stream) 
stream.close() 
# ... and then save image with: image.save(outfile, format, options) 

PIL Image documentation bakınız: Bu (bir görüntü akışından Image nesne oluşturmak için standart fabrika yöntemi) Pil en Image.open geçirilen bir akış nesnesini geri gönderir.

+1

Sadece bunu farkettiniz. Teşekkürler. – Zach

+0

'stream.close()', referansı dosyaya döker mi? Eğer stream.thumbnail (200x200, 'png') yapmak istediğimde stream.close() 'yi nasıl yönetmeliyim? – tutuca

+1

open 'None' burada döner http://dpaste.de/HqFCF/ ... – tutuca