Ist es in Django möglich, das hochgeladene Bild zu ändern (zu skalieren), bevor es auf der Festplatte gespeichert wird? Ich würde das lieber ohne zusätzliche Apps machen.Django Größe während des Uploads ändern
Antwort
Ich war verärgert, dass ich nicht ein komplettes Arbeitsbeispiel nur Bits hier und da finden konnte. Es ist mir gelungen, die Lösung selbst zusammenzustellen. Hier ist das vollständige Beispiel, ich habe es in clean() -Methode des Formulars (Sie können auch Modelle save() -Methode auf die gleiche Weise überschreiben - ImageField die Dateieigenschaft ändern).
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
Danke für dieses Beispiel, aber ich verstehe nicht alles ... Was ist "info"? Ansonsten ist es in Python 3.x io.StringIO (...) – HydrUra
Sie könnten PIL verwenden und das Bild in der YourModel.save() - Methode skalieren.
Beispiele:
http://djangosaur.tumblr.com/post/422589280/django-resize-thumbnail-image-pil
http://davedash.com/2009/02/21/resizing-image-on-upload-in-django/
Haben Sie ein Codebeispiel? – johndoevodka
Ja, in meinem Post hinzugefügt :) – Efrin
+1 für das Vorschlagen PIL – Amyth
- 1. php Bildgröße ändern vor oder während des Uploads
- 2. Größe der jqgrid Breite ändern, während Browser Größe ändern
- 3. Abrufen des Upload-Fortschritts während des Datei-Uploads mit Webclient.Uploadfile
- 4. Wert eines Django-Formularfelds während des clean() ändern
- 5. Größe des SplitContainers dynamisch ändern
- 6. Größe des SDL2-Fensters ändern?
- 7. Größe des Formulars ändern - FormBorderStyle
- 8. Größe des ACE-Editors ändern
- 9. Menüleiste wird abgeschnitten, während Größe ändern Fenster
- 10. Ändern des Modells während des Trainings [Tensorflow]
- 11. Größe des Kreises SVG in D3 ändern
- 12. Größe ändern bei speichern
- 13. PHP Validieren des Datei-Uploads
- 14. Größe des Kendo-Diagramms ändern, während das Fenster des Browsers minimiert wird?
- 15. Django File Uploads und Modell FileField
- 16. Größe des Browserfensters während des Debuggens in Visual Studio
- 17. Größenreduzierung/Miniaturbilder während des Hochladens mit ImageMagick
- 18. Ändern Sie die Größe des Bedienfelds dynamisch
- 19. Ändern der Farbe und Größe des Diagrammtextes
- 20. DWM Thumbnail, Größe des Vorschaufensters ändern
- 21. Ändern der Größe des Ruhezustands programmatisch
- 22. Größe des Konsolenfensters ändern wirft ArgumentOutOfRangeException
- 23. Größe des Auslöserfensters bei Bootstrap-Komprimierung ändern
- 24. Größe des ImageView-Platzhalters mit Picasso ändern
- 25. Datei-Uploads mit Progressbar in Django
- 26. Django CKEditor Image Uploads nicht erscheinen
- 27. Ändern der Größe von iframe während jQuery-Animationen
- 28. Größe des hochgeladenen Bildes in MVC 6 ändern
- 29. Ändern der "Proc" -Bindung während des Aufrufs
- 30. Größe des ziehbaren Elements beim Start des Ziehens ändern
[Was Sie versucht haben?] (Http://whathaveyoutried.com) – arulmr
Verwenden PIL für den Job: http://stackoverflow.com/questions/273946/how-do-i-resize-an -image-using-pil-and-maintain-it-aspect-ratio –
Sie müssen eine externe Bibliothek oder eine App verwenden, um dies zu erreichen, da Django keine vordefinierten Methoden für das, was Sie tun möchten, haben. – Amyth