मुझे पीआईएल छवि का आकार बदलने के साथ कुछ अजीब समस्या है।पीआईएल Image.resize() चित्र का आकार बदल नहीं रहा
def handle_uploaded_image(i, u):
# resize image
from PIL import Image
img = Image.open(i)
if img.mode not in ('L', 'RGB'):
img = img.convert('RGB')
width, height = img.size
if width == height:
img.thumbnail(settings.THUMB_SIZE, Image.ANTIALIAS)
elif width > height:
ratio = floor(width/height)
newwidth = ratio * 150
newwidthhalf = floor(newwidth/2)
img.resize((newwidth, 150), Image.ANTIALIAS)
box = 1
img.crop((newwidthhalf, 0, 150, 150))
elif height > width:
ratio = floor(height/width)
newheight = ratio * 150
newheighthalf = floor(newheight/2)
img.resize((150, newheight), image.ANTIALIAS)
box = 1
img.crop((0, newheighthalf, 150, 150))
path = '/'.join([settings.MEDIA_ROOT, 'users', u.username, 'mugshotv2.jpg'])
img.save(path, format='JPEG')
इस कोड को किसी भी त्रुटि के बिना चलाता है और मुझे सही फ़ोल्डर में छवि नामित mugshotv2.jpg पैदा करता है, लेकिन यह इसका आकार बदल नहीं करता है। यह कुछ करता है, क्योंकि तस्वीर का आकार 120 केबी से 20 केबी तक गिर जाता है, लेकिन आयाम समान रहते हैं।
शायद आप कम कोड वाले वर्गों में छवियों को फसल करने का तरीका भी सुझा सकते हैं। मैंने थोड़ी सी सोचा कि छवि। थंबनेल यह करता है, लेकिन यह क्या हुआ था कि यह मेरी छवि को चौड़ाई से 150 पीएक्स तक बढ़ा दिया, ऊंचाई 100px छोड़ दिया।
एलन।
धन्यवाद! वह यह था। यह फिर से इस बेवकूफ, आसान तरह की गलती थी, कि मैं अक्सर करता हूं: पी। इसे फिर से देखकर मैं समझ नहीं पा रहा हूं कि मैं इसे कैसे समझ नहीं पाया - यह सब के बाद बहुत ही डॉक्स में था। मुझे लगता है कि मुझे बिस्तर पर जाने की जरूरत है। धन्यवाद फिर से और बीमार किसी अन्य दिन ImageOps.fit को आजमाएं: डी –
@Zayatzz, इसलिए @ नादिया के उत्तर को स्वीकार करें, क्योंकि यह आपकी समस्या हल हो गया है _and_ यहां तक कि बेहतर दृष्टिकोण पर भी सलाह प्रदान की गई है! –
आह .. वह अजीब चेक मार्क .... ओहवेल। यह कुछ और ध्यान आकर्षित करने के लिए कुछ उपयोग कर सकता है। –