python制作图片缩略图


Posted in Python onApril 30, 2019

缩略图

在很多时候我们都需要将图片按照同比例缩小有利于存储 但是一张张手动去改的话太麻烦了 今天我们就用python实现一个简单的将一个文件夹中的所有图片进行指定大小的调整

缩略前:

python制作图片缩略图

代码:

import os
import glob
from PIL import Image

def thumbnail_pic(path):
 #glob.glob(pathname),返回所有匹配的文件路径列表
 a=glob.glob(r'./img/*.jpg')
 for x in a:
 name=os.path.join(path,x)
 im=Image.open(name)
 im.thumbnail((80,80))
 print(im.format,im.size,im.mode)
 im.save(name,'JPEG')
 print('Done!')

if __name__=='__main__':
 path='.'
 thumbnail_pic(path)

缩略后:

python制作图片缩略图

参数使用说明:

1、os模块,python的os模块封装了常见的文件和目录操作。
2、PIL模块中Image类thumbnail()方法可以用来制作缩略图,它接受一个二元数组作为缩略图的尺寸,然后将示例缩小到指定尺寸。

Image.resize()和Image.thumbnail()的区别
根据代码和代码注释, 这两个函数都是对图片进行缩放, 两者的主要区别如下:

  • resize()函数会返回一个Image对象, thumbnail()函数返回None
  • resize()修改后的图片在返回的Image中, 而原图片没有被修改;
  • thumbnail()直接对内存中的原图进行了修改, 但是修改需要保存
  • resize()中的size参数直接设定了resize之后图片的规格,而thumbnail()中的size参数则是设定了x/y上的最大值. 也就是说, 经过resize()处理的图片可能会被拉伸,而经过thumbnail()处理的图片不会被拉伸
  • thumbnail()函数内部调用了resize(), 可以认为thumbnail()是对resize()的一种封装

使用scrapy爬虫框架制作缩略图

Images Pipeline为处理图片提供了额外的功能:

  • 将所有下载的图片格式转换成普通的JPG并使用RGB颜色模式
  • 生成缩略图
  • 检查图片的宽度和高度确保它们满足最小的尺寸限制

管道同时会在内部保存一个被调度下载的URL列表,然后将包含相同媒体的相应关联到这个队列上来,从而防止了多个item共享这个媒体时重复下载。

ImagesPipeline使用Pillow来生成缩略图以及转换成标准的JPEG/RGB格式。因此你需要安装这个包,我们建议你使用Pillow而不是PIL。

配置setting.py

# 同时使用图片和文件管道
ITEM_PIPELINES = {
   'scrapy.pipelines.images.ImagesPipeline': 1,
   'scrapy.pipelines.files.FilesPipeline': 2,
   }
# 指定图片字段
IMAGES_URLS_FIELD = 'images'
IMAGES_STORE = '/path/to/valid/dir' # 图片存储路径
# 文件过期90天
FILES_EXPIRES = 90
# 图像过期延迟30天
IMAGES_EXPIRES = 30
# 图片缩略图
IMAGES_THUMBS = {
 'small': (50, 50),
 'big': (270, 270),
}
# 图片过滤器,最小高度和宽度
IMAGES_MIN_HEIGHT = 110
IMAGES_MIN_WIDTH = 110

pipeline.py文件

class YuehuiImagePipeline(ImagesPipeline):
 def item_completed(self, results, item, info):
 if results[0][0]:
  item['image_path'] = results[0][1]['path']
 else:
  item['image_path'] = ''

 return item

items.py

class YuehuiItem(scrapy.Item):
 uid= scrapy.Field()
 height = scrapy.Field()
 weight = scrapy.Field()
 images = scrapy.Field() #头像url字段 要求列表 在setting文件中配置
 image_path = scrapy.Field()

以上为个人使用scrapy保存缩略图的总结。

Python 相关文章推荐
Python  连接字符串(join %)
Sep 06 Python
python监控网卡流量并使用graphite绘图的示例
Apr 27 Python
Python的collections模块中的OrderedDict有序字典
Jul 07 Python
Eclipse和PyDev搭建完美Python开发环境教程(Windows篇)
Nov 16 Python
TF-IDF算法解析与Python实现方法详解
Nov 16 Python
Python加载带有注释的Json文件实例
May 23 Python
python实现名片管理系统
Nov 29 Python
python twilio模块实现发送手机短信功能
Aug 02 Python
python pygame实现球球大作战
Nov 25 Python
详解python变量与数据类型
Aug 25 Python
python定时截屏实现
Nov 02 Python
python中pandas.read_csv()函数的深入讲解
Mar 29 Python
python获取微信企业号打卡数据并生成windows计划任务
Apr 30 #Python
使用Python实现企业微信的自动打卡功能
Apr 30 #Python
Python/Django后端使用PIL Image生成头像缩略图
Apr 30 #Python
Python3.5迭代器与生成器用法实例分析
Apr 30 #Python
python使用Paramiko模块实现远程文件拷贝
Apr 30 #Python
Django学习笔记之为Model添加Action
Apr 30 #Python
Python Opencv实现图像轮廓识别功能
Mar 23 #Python
You might like
二十行语句实现从Excel到mysql的转化
2006/10/09 PHP
smarty的保留变量问题
2008/10/23 PHP
一些php技巧与注意事项分析
2011/02/03 PHP
比较简单实用的PHP无限分类源码分享(思路不错)
2011/10/13 PHP
coreseek 搜索英文的问题详解
2013/06/08 PHP
php中使用base HTTP验证的方法
2015/04/20 PHP
PHP+MariaDB数据库操作基本技巧备忘总结
2018/05/21 PHP
PHP检查文件是否存在,不存在自动创建及读取文件内容操作示例
2020/01/23 PHP
基于jquery用于查询操作的实现代码
2010/05/10 Javascript
javascript删除option选项的多种方法总结
2013/11/22 Javascript
关于js中for in的缺陷浅析
2013/12/02 Javascript
javascript 模拟坦克大战游戏(html5版)附源码下载
2014/04/08 Javascript
javascript中hasOwnProperty() 方法使用指南
2015/03/09 Javascript
JavaScript资源预加载组件和滑屏组件的使用推荐
2016/03/10 Javascript
JS实现快速的导航下拉菜单动画效果附源码下载
2016/11/01 Javascript
BootStrap Tooltip插件源码解析
2016/12/27 Javascript
JS实现JSON.stringify的实例代码讲解
2017/02/07 Javascript
vue 解决addRoutes动态添加路由后刷新失效问题
2018/07/02 Javascript
vue自定义指令用法经典实例小结
2019/03/16 Javascript
es6数组的flat(),flatMap()函数用法实例分析
2020/04/18 Javascript
Vue利用localStorage本地缓存使页面刷新验证码不清零功能的实现
2020/09/04 Javascript
JS+CSS实现炫酷光感效果
2020/09/05 Javascript
[05:03]2018DOTA2亚洲邀请赛主赛事首日回顾
2018/04/04 DOTA
Python中exit、return、sys.exit()等使用实例和区别
2015/05/28 Python
快速排序的算法思想及Python版快速排序的实现示例
2016/07/02 Python
Python for循环搭配else常见问题解决
2020/02/11 Python
python烟花效果的代码实例
2020/02/25 Python
CSS3自定义滚动条样式的示例代码
2017/08/21 HTML / CSS
资源环境与城市管理专业推荐信
2013/11/30 职场文书
师范学院教师自荐书
2014/01/31 职场文书
企业形象策划方案
2014/05/29 职场文书
授权委托书范文
2014/07/31 职场文书
2015军训通讯稿大全
2015/07/18 职场文书
遗嘱格式范本
2015/08/07 职场文书
如何使用CocosCreator对象池
2021/04/14 Javascript
宫崎骏十大动画电影,宫崎骏好看的动画电影排名
2022/03/22 日漫