django上传图片并生成缩略图方法示例

yipeiwu_com6年前Python基础

django 处理上传图片生成缩略图首先要注意form标签上必须有enctype="multipart/form-data"属性,另外要装好PIL库, 然后就很简单了,如下是实例代码:

upload.html

<div id="uploader"> 
  <form id="upload" enctype="multipart/form-data" action="/ajax/upload/" method="post"> 
    <input id="file" name="file" type="file"> 
    <input type="submit" value="Upload"> 
  </form> 
</div> 

view.py

# -*- coding: utf-8 -*- 
from django.http import HttpResponse 
import Image 

def upload(request):   
  reqfile = request.FILES['file'] 
  image = Image.open(reqfile) 
  image.thumbnail((128,128),Image.ANTIALIAS) 
  image.save("/home/lhb/1.jpeg","jpeg") 
  return HttpResponse("success.") 

下面介绍下生成缩略图质量差的解决办法。

使用python的PIL库的thumbnail方法生成缩略图的质量很差,需要使用resize方法来生成缩略图,并制定缩略图的质量,如下代码:

image = image.resize((x, y), Image.ANTIALIAS)
quality_val = 90
image.save(filename, 'JPEG', quality=quality_val)

总结

以上就是本文关于django上传图片并生成缩略图方法示例的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站:

Python内置模块turtle绘图详解

Python实战小程序利用matplotlib模块画图代码分享

Python科学画图代码分享

如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!

相关文章

python-numpy-指数分布实例详解

如下所示: # Seed random number generator np.random.seed(42) # Compute mean no-hitter time: ta...

对PyQt5中的菜单栏和工具栏实例详解

对PyQt5中的菜单栏和工具栏实例详解

在这一部分,我们学习创建状态栏,菜单栏和工具栏。一个菜单是位于菜单栏的一组命令。一个工具栏有一些按钮,这些按钮在应用程序中拥有一些常用命令。状态栏显示状态信息,通常位于应用窗口下方。 Q...

Python数据可视化之画图

Python数据可视化之画图

安装数据可视化模块matplotlib:pip install matplotlib 导入matplotlib模块下的pyplot 1 折线图 from matplotlib imp...

python快速排序代码实例

一、 算法描述: 1.先从数列中取出一个数作为基准数。2.分区过程,将比这个数大的数全放到它的右边,小于或等于它的数全放到它的左边。3.再对左右区间重复第二步,直到各区间只有一个数。 &...

python实现网页链接提取的方法分享

复制代码 代码如下:#encoding:utf-8import socketimport htmllib,formatterdef open_socket(host,servname):...