pythonimage库(Python/Django后端使用PIL Image生成头像缩略图)
类别:脚本大全 浏览量:2432
时间:2021-10-11 00:03:14 pythonimage库
Python/Django后端使用PIL Image生成头像缩略图本文实例为大家分享了python/django后端使用pil image生成头像缩略图的具体代码,供大家参考,具体内容如下
|
import os from django.views.generic import view from myapp.models import user from pil import image def make_thumbnail(infile,thumbnail_dir): size = ( 156 , 156 ) if not os.path.exists(thumbnail_dir): #判断缩略图存储目录是否存在then新建 os.mkdir(thumbnail_dir) outfile = os.path.join( thumbnail_dir, os.path.basename(infile)) try : im = image. open (infile) #key point im.thumbnail(size) #key point im.save(outfile, "jpeg" ) #key point return true except ioerror, err: print ( "cannot create thumbnail for" , infile,err) return false class useravatar(view): def __init__( self ): self .thumbnail_dir = os.path.join(static_root, 'avatar/thumbnails' ) self .dest_dir = os.path.join(static_root, 'avatar/origin_imgs' ) @method_decorator (login_required) def post( self , request): nt_id = request.session.get( 'nt_id' , 'default' ) user = user.objects.get(pk = nt_id) if user.objects. filter (pk = nt_id).exists() else none avatarimg = request.files[ 'avatar' ] if not os.path.exists( self .dest_dir): #判断原图存储目录是否存在then新建 os.mkdir( self .dest_dir) dest = os.path.join( self .dest_dir, nt_id + "_avatar.jpg" ) with open (dest, "wb+" ) as destination: #先保存原图 for chunk in avatarimg.chunks(): destination.write(chunk) if make_thumb(dest, self .thumbnail_dir): #使用原图创建缩略图 avartapath = os.path.join(static_url, 'avatar/thumbnails' , nt_id + "_avatar.jpg" ) else : avartapath = os.path.join(static_url, 'avatar/origin_imgs' , nt_id + "_avatar.jpg" ) user.objects. filter (nt_id = nt_id).update(avatar = avartapath) return render(request, 'profile.html' , { 'user' : user}) |
示例代码中将制作缩略图的函数从基于类的视图中分离出来了(为了清晰起见),实际编程过程中可以定义为类方法方面调用。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持开心学习网。
原文链接:https://blog.csdn.net/Lockey23/article/details/80659323
您可能感兴趣
- python3 代码解读(Python3列表内置方法大全及示例代码小结)
- python的基础数据结构有哪些(详解python的四种内置数据结构)
- python 游戏开发实例(python实现诗歌游戏类继承)
- python字符串找一个最大字符(Python查找最长不包含重复字符的子字符串算法示例)
- python多线程超时设置(解决python线程卡死的问题)
- python面向对象编写案例(Python面向对象程序设计示例小结)
- python高级面试题及答案(python面试题小结附答案实例代码)
- 如何利用python编写日期的程序(Python读取指定日期邮件的实例)
- python编写端口扫描器(Python开发网站目录扫描器的实现)
- opencv人脸识别算法(python利用Opencv实现人脸识别功能)
- python中字符串常用函数或方法(Python3.5字符串常用操作实例详解)
- 浅谈Python3中strip()、lstrip()、rstrip()用法详解(浅谈Python3中strip、lstrip、rstrip用法详解)
- 如何用python处理excel表格(零基础使用Python读写处理Excel表格的方法)
- python3的循环怎么用(对Python3 goto 语句的使用方法详解)
- python统计出现文字最多的词(使用Python 统计高频字数的方法)
- python3.9.1如何安装模块(Python3.6中Twisted模块安装的问题与解决)
- 精英律师 廖佳敏封印恋情曝光,顾婕马失前蹄 你个老不死的(廖佳敏封印恋情曝光)
- 以家人之名广受好评,剧情生动引起观众共鸣,演员张新成圈粉无数(以家人之名广受好评)
- 三兄妹感情再遇波折,人设接连崩塌 《以家人之名》剧情猜不透(三兄妹感情再遇波折)
- 《小敏家》金波想要复婚 这只是他圈套的第1步,更可恶的在后面(小敏家金波想要复婚)
- 小敏家 剧情离谱一锅乱炖,但他们俩绝对是这部剧的一大 亮点(剧情离谱一锅乱炖)
- 《倚天屠龙记》再遭翻拍,关晓彤主演赵敏,蒋劲夫演张无忌,你怎么看(倚天屠龙记再遭翻拍)
热门推荐
- mysql数据库触发器(MySQL中使用游标触发器的方法)
- mysql重复插入数据教程(Mysql避免重复插入数据的4种方式)
- html5自定义字体图标(HTML5给汉字加拼音收起展开组件的实现代码)
- 织梦怎么使用tag标签(织梦dedecms使用weight排序无效的解决方法)
- 数据库备份时需要注意的事情
- python自定义定时任务(python的schedule定时任务模块二次封装方法)
- Visual Studio使用Git进行源代码管理
- mysql limit越大越慢(MySQL limit分页大偏移量慢的原因及优化方案)
- python企业微信录信息(python获取微信企业号打卡数据并生成windows计划任务)
- springbootdocker详解(Spring Boot 2.4 新特性之一键构建Docker镜像的过程详解)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9