मैं अपनी परियोजना में userProfile
मॉडल में मूल उपयोगकर्ता छवि को सहेजते समय थंबनेल छवि बनाने और सहेजने का प्रयास कर रहा हूं, नीचे मेरा कोड है:पीआईएल थंबनेल सही ढंग से आकार क्यों नहीं बदल रहा है?
def save(self, *args, **kwargs):
super(UserProfile, self).save(*args, **kwargs)
THUMB_SIZE = 45, 45
image = Image.open(join(MEDIA_ROOT, self.headshot.name))
fn, ext = os.path.splitext(self.headshot.name)
image.thumbnail(THUMB_SIZE, Image.ANTIALIAS)
thumb_fn = fn + '-thumb' + ext
tf = NamedTemporaryFile()
image.save(tf.name, 'JPEG')
self.headshot_thumb.save(thumb_fn, File(open(tf.name)), save=False)
tf.close()
super(UserProfile, self).save(*args, **kwargs)
प्रत्येक चीज ठीक काम कर रही है, बस यह एक बात है।
समस्या यह है कि थंबनेल फ़ंक्शन केवल चौड़ाई को 45
पर सेट करता है और छवि के अनुपात पहलू को नहीं बदलता है, इसलिए मुझे उस छवि के लिए 45*35
की एक छवि मिल रही है जिसे मैं परीक्षण कर रहा हूं (लघु छवि)।
क्या कोई मुझे बता सकता है कि मैं क्या गलत कर रहा हूं? पहलू अनुपात को मैं कैसे मजबूर करूं?
पीएस .: मैंने आकार के लिए सभी विधियों का प्रयास किया है: tupal: THUMB_SIZE = (45, 45)
और सीधे थंबनेल फ़ंक्शन पर आकार दर्ज करना।
एक और सवाल: पीआईएल में आकार बदलने और थंबनेल कार्यों के बीच क्या अंतर है? आकार का उपयोग कब करें और थंबनेल का उपयोग कब करें?
http://www.pythonware.com/library/pil/handbook/image.htm#Image.thumbnail देखें – Exelian
अच्छा, मैं करने के लिए लिंक संलग्न करेंगे मेरा उत्तर =) – BFil
10x, लेकिन मैंने image.resize (THUMB_SIZE, Image.ANTIALIAS) भी कोशिश की है जहां THUMB_RESIZE एक tupal (THUMB_RESIZE = (45,45) है और यह अभी भी आकार बदल नहीं रहा है ... कोई भी चीज़ और यहाँ पर? (यही वह है जो मैंने लिंक में पढ़ा है) ... धन्यवाद :-) – Erez