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求两个list的差集、交集与并集的方法
Nov 01 Python
python 类对象和实例对象动态添加方法(分享)
Dec 31 Python
Python3.5 创建文件的简单实例
Apr 26 Python
详解Python函数式编程—高阶函数
Mar 29 Python
Python使用Pickle模块进行数据保存和读取的讲解
Apr 09 Python
Python3.5内置模块之os模块、sys模块、shutil模块用法实例分析
Apr 27 Python
Python跳出多重循环的方法示例
Jul 03 Python
使用python进行广告点击率的预测的实现
Jul 04 Python
python实现计算器功能
Oct 31 Python
python 正则表达式参数替换实例详解
Jan 17 Python
Python如何实现自带HTTP文件传输服务
Jul 08 Python
Tensorflow使用Anaconda、pycharm安装记录
Jul 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
转PHP手册及PHP编程标准
2006/12/17 PHP
php开启安全模式后禁用的函数集合
2011/06/26 PHP
PHP仿盗链代码
2012/06/03 PHP
PHPStorm+XDebug进行调试图文教程
2016/06/13 PHP
jQuery 1.0.2
2006/10/11 Javascript
JSQL  一个 web DB 的封装
2010/05/05 Javascript
jquery 元素控制(追加元素/追加内容)介绍及应用
2013/04/21 Javascript
JavaScript从数组中删除指定值元素的方法
2015/03/18 Javascript
自己动手写的jquery分页控件(非常简单实用)
2015/10/28 Javascript
jQuery对table表格进行增删改查
2020/12/22 Javascript
jQuery基本选择器和层次选择器学习使用
2017/02/27 Javascript
利用Javascript裁剪图片并存储的简单实现
2017/03/13 Javascript
jquery加载单文件vue组件的方法
2017/06/20 jQuery
Vue渲染函数详解
2017/09/15 Javascript
详解vue中使用express+fetch获取本地json文件
2017/10/10 Javascript
微信小程序wx.request实现后台数据交互功能分析
2017/11/25 Javascript
Vue动态获取width的方法
2018/08/22 Javascript
[03:26]回顾2015国际邀请赛中国区预选赛
2015/06/09 DOTA
python基于xml parse实现解析cdatasection数据
2014/09/30 Python
python实现简单中文词频统计示例
2017/11/08 Python
解决pandas中读取中文名称的csv文件报错的问题
2018/07/04 Python
用Python抢火车票的简单小程序实现解析
2019/08/14 Python
Python用5行代码实现批量抠图的示例代码
2020/04/14 Python
详解H5本地储存Web Storage
2017/07/03 HTML / CSS
HTML5手机端弹出遮罩菜单特效代码
2016/01/27 HTML / CSS
诺心蛋糕官网:LE CAKE
2018/08/25 全球购物
牵手50台湾:专为黄金岁月的单身人士而设的交友网站
2021/02/18 全球购物
七年级音乐教学反思
2014/01/26 职场文书
群众路线四风问题整改措施
2014/09/27 职场文书
统计工作个人总结
2015/03/03 职场文书
2015年采购工作总结
2015/04/10 职场文书
员工辞退通知书
2015/04/17 职场文书
公司人力资源管理制度
2015/08/05 职场文书
创业计划书之家教中心
2019/09/25 职场文书
Python requests用法和django后台处理详解
2022/03/19 Python
TV动画《间谍过家家》公开PV
2022/03/20 日漫