PIL Image nesnesinden nasıl seçilebilir bir dosya oluşturabilirim, böylece bu görüntüleri tek bir turşu dosyası olarak kaydedebilir ve PIL çalıştıran bir sunucu gibi başka bir bilgisayara yükleyebilir ve oradan çıkartabilirsiniz?Pickleable Image Object
Verilerin içine Görüntü nesneye dönüştürebilirsinizcevap
o zaman turşu olabilir: Görüntüye
image = {
'pixels': im.tostring(),
'size': im.size,
'mode': im.mode,
}
Ve geri:
im = Image.fromstring(image['mode'], image['size'], image['pixels'])
NOT: bahsedildiğiastex
olarak, eğer Yastık kullanarak (PIL yerine önerilen), yöntemi tobytes()
için kullanımdan kaldırılmıştır. Benzer şekilde frombytes()
için fromstring()
ile.
kullanarak Gerald'ın cevabın hafif varyasyon anahtar kelime bağımsız değişken
oluşturmak pickleable nesne
image = {'data': im.tostring(), 'size':im.size, 'mode':im.mode}
veya arka görüntüye
image = dict(data=im.tostring(), size=im.size, mode=im.mode)
unpickle
im = Image.fromstring(**image)
Bu, görüntüleri uygulamamda saklamama gerek olmadığı anlamına mı geliyor? Görüntüyü kullanmak istediğimde, serileştirdikleri dizgeyi kullanabilirim ve sadece uygulama içinde sabitleyebilir miyim? – Ogen
Teknik olarak * bunu yapabilir, ancak gerçek bir dosya olarak saklamak çok daha iyidir ... her iki durumda da kodunuzla birlikte versiyonlanabilir, ancak resimler olarak saklanan resimlerin, bunları kolayca görüntüleyebileceğiniz ve ne olduğunu bildiğiniz anlamına gelir. kaydettiğiniz medya. Resimleri kod olarak saklıyorsanız, kaynak dosyalarınızın boyutunu yapay olarak şişiriyorsunuz. Bu sayede, görüntülemek ve aramaya daha fazla zahmetli oluyorsunuz ve bu görüntüyü görüntülemek ve/veya değiştirmek istediğinizde medyayı yönetmek daha zor hale geliyor. – kungphu
'Image.tostring() 'şimdi kullanımdan kaldırıldı n 'Yastık 'Image.tobytes()' lehine. Gelecek kuşak için, yukarıdakileri değiştirmek (veya en azından bir not bırakmak) daha iyi olabilir. – astex