使用PIL生成用户头像缩略图
2017-08-08 11:12
501 查看
引言
近来在用Django做一个二手发布网站,需要实现用户注册之类,其中定然少不了用户头像了。但由于自己单枪匹马,没有一个前端大手帮忙写页面,所以也没奢求用户可以在前端自行对图片进行剪裁,想也个比较low的办法,把用户上传的图片的中心内容截出来作为图片实现
from PIL import Image,ImageDraw,ImageFont,ImageFilter #创建缩略图,参数为图片的完整路径(判断是否是图片请于上层处理,这里默认是图片文件) def creat_head(path): #生成一个24为字母数字作为头像名 name = ''.join(random.sample(string.ascii_letters + string.digits, 24))+'.png' img = Image.open(path) #取图片长宽的较小值 small = min(img.size) #去出来的部分为中心部分的矩形(如300*100取的是(100,0,200,100)) box = ((img.size[0]-small)/2,(img.size[1]-small),(img.size[0]-small)/2 + small,(img.size[1]-small)/2 + small) # 裁切图片 cropImg = img.crop(box) # 缩略图(定义最终缩略图大小) cropImg.thumbnail((50,50), Image.ANTIALIAS) #保存 cropImg.save(os.path.join(settings.MEDIA_ROOT,'head',name)) #返回路径 return os.path.join('/media','head',name)
最终
最后每张图大概为6k,1G硬盘能存储下17W张图片。相关文章推荐
- python使用pil生成缩略图的方法
- 使用python PIL来生成缩略图
- 使用FileUpload控件上传图片并自动生成缩略图、自动生成带文字和图片的水印图
- 强大的flash头像上传插件(支持旋转、拖拽、剪裁、生成缩略图等)
- 在 Android 的 IM 应用中使用 asmack 库实现用户头像的传输(基于VCard协议)
- 使用c#生成高品质小空间的缩略图
- 使用PHP实现生成固定大小图片缩略图功能(智能裁剪,图片不失真)
- PHP中使用Imagick读取pdf并生成png缩略图实例
- 使用ASP.NET Image Generation生成图片缩略图及水印
- VS2005中使用FileUpload控件上传图片并自动生成缩略图
- 使用crypt生成用户密码-Tested on RedHat & SuSE Platform
- Spring Mvc - 用户注册服务端生成默认头像实现
- 使用Myeclipse10.0自动生成搭建SSH框架(数据库表自动反向转换成Hibernate实体)实现用户登陆
- VS2005中使用FileUpload控件上传图片并自动生成缩略图
- 使用超酷的jQuery缩略图生成插件NailThumb制作漂亮的缩略图web应用
- php生成缩略图(使用gd库)
- 使用ASP.NET上传图片并生成缩略图
- 使用FileUpload控件上传图片并自动生成缩略图、带文字和图片的水印图
- PHP 使用 Imagick 裁切/生成缩略图/添加水印, 自动检测和处理 GIF
- 使用FileUpload控件上传图片并自动生成缩略图、自动生成带文字和图片的水印图(原创)