Django'da, yüklenen görüntü diske kaydedilmeden önce değiştirilebilir (yeniden boyutlandırabilir)? Ekstra uygulamalar kullanmadan bunu yapmayı tercih ederim.Django, yükleme sırasında resmi yeniden boyutlandırır
cevap
ben orada burada, sadece bitleri tam bir çalışma örneği bulamadık sinirlendi. Çözümü kendim bir araya getirmeyi başardım. İşte tam bir örnek, ben formun clean() yöntemine koydum (aynı zamanda tamamen SaveFire'nin dosya özelliğini değiştirerek) save() yöntemini de geçersiz kılabilirsiniz).
import StringIO
from PIL import Image
image_field = self.cleaned_data.get('image_field')
image_file = StringIO.StringIO(image_field.read())
image = Image.open(image_file)
w, h = image.size
image = image.resize((w/2, h/2), Image.ANTIALIAS)
image_file = StringIO.StringIO()
image.save(image_file, 'JPEG', quality=90)
image_field.file = image_file
Bu örnek için teşekkürler, ancak her şeyi anlamıyorum ... "Bilgi" nedir? Aksi takdirde, python 3.x'te io.StringIO (...) – HydrUra
PIL'i kullanabilir ve görüntüyü YourModel.save() yönteminde yeniden boyutlandırabilirsiniz.
Örnekler:
http://djangosaur.tumblr.com/post/422589280/django-resize-thumbnail-image-pil
http://davedash.com/2009/02/21/resizing-image-on-upload-in-django/
[size denedi Ne?] (Http://whathaveyoutried.com) bu iş için – arulmr
Kullanım PIL: http://stackoverflow.com/questions/273946/how-do-i-resize-an -image-using-pil ve bakım-onun-en-boy-oran –
django yapmak istediğiniz ne için önceden tanımlanmış yöntemleri olmadığı gibi bunu elde etmek için harici bir kütüphane veya uygulama kullanmanız gerekir. – Amyth