Django缩略图

Posted by Danfi on 2010-07-13 1条评论
  1. from PIL import Image
  2.  
  3. class Article(models.Model):
  4.   ...
  5.   photo = models.ImageField(upload_to='static/upload')      //图片路径
  6.     
  7.     def save(self):
  8.         if not self.id and not self.photo:
  9.             return
  10.         super(Article, self).save()
  11.         pw = self.photo.width                                    //取原图大小
  12.         ph = self.photo.height
  13.         filename = str(self.photo.url)
  14.         basename, format = filename.rsplit('.', 1)
  15.         miniature = basename + '_thumb'  + '.' +  format       //生成缩略图名
  16.         image = Image.open(filename)
  17.         if pw > 1000 or ph > 1000:             //根据大小设置缩小比率
  18.             p1 = float(pw) / 3
  19.             p2 = float(ph) / 3
  20.         elif (pw > 600 and pw<=1000) or ( ph > 600 and ph <= 1000):
  21.             p1 = float(pw) / 2
  22.             p2 = float(ph) / 2
  23.         else:
  24.             p1 = pw
  25.             p2 = ph
  26.         image = image.resize((p1, p2), Image.ANTIALIAS)
  27.         image.save(miniature)

  • Posted by 王长春 On 2010-08-15 22:12

    您好 可以发给我一个完整的图片上传的django代码吗 包括views.py form.py 跟templates 谢谢!!!可以发到我邮箱中

    [回复]

发表评论

(必填,但不会被公开)