本文来自趣学python+python办公专栏该专栏致力于兴趣化、实用化的学习python会定期更新。

专栏链接:传送门

目录标题

  • 导读
  • 实际演示阶段
  • 详细介绍该库
  • 点击直接资料领取

导读

为了解决图片被改变大小后,比例保持不变(这样就不会变形了)
图片需要压缩,避免填图后的word文件太大通过Image模块中的resize函数,就能给解决如上问题。我们还是先按“修改时间”顺序获取图片文件夹下的所有图片的完整路径

实际演示阶段

我们需要做的事情就是将图一变为图二
图一:

图二:

进行等比例缩小。

#将图片按修改时间排序(这样才能与图片的描述一致),将路径存入列表,以便后面逐个插入图片时调用
import  os
path = "pictures"
list_p = [path+"\\"+i for i in os.listdir(path)] #获取图片的文件名,并拼接完整路径
list_p.sort(key=lambda path: os.path.getmtime(path)) #将列表中的文件按其修改时间排序,os.path.getmtime() 函数是获取文件最后修改时间
list_p里面存放的就是该文件夹下的所有图片路径'pictures\\z.jpg','pictures\\x.jpg','pictures\\w.jpg','pictures\\y.jpg','pictures\\orange-flowers-2471898.jpg','pictures\\lime-631389.jpg','pictures\\v.jpg',

然后导入Image模块。for循环遍历所有图片的路径,然后读取图片尺寸,x对应宽度,y对应高度。这里的单位是像素。压缩图片的关键参数是压缩后的标准宽度x_s,我们Word模板中放置图片的单元格宽度为6.25厘米。压缩后的图片分辨率是96,像素为230的时候,对应长度是6.1厘米。以上换算可参考链接https://www.gaitubao.com/tools/pixel2cm.html
。但是按230像素的宽度压缩后,自动填充到Word文档中后,图片宽度变成了8厘米,已经超过单元格的宽度了。通过调试,最终将标准宽度设定为165像素,填入word中后,宽度是5.82厘米,比较适合单元格宽度。这个差异可能是换算的不精确导致。确定好标准宽度x_s后,高度y_s按照标准宽度乘上原始高宽比来确定,这样就是保持比例压缩,不会导致图片变形。压缩resize后,再保存到新的文件夹。

#按比例缩小图片尺寸
from PIL import Imagefor infile in list_p:im = Image.open(infile)(x,y) = im.size #读取图片尺寸(像素)x_s = 165 #定义缩小后的标准宽度 y_s = int(y * x_s / x) #基于标准宽度计算缩小后的高度out = im.resize((x_s,y_s),Image.ANTIALIAS) #改变尺寸,保持图片高品质out.save('pictures_new\\{}'.format(infile.split("\\")[-1]))

就这样简单的几步我们就得到了想要的结果把图片压缩成了:

压缩前:

结果:

详细介绍该库

上面的介绍是不是很简单不过它只是PIL的一个功能下面我们详细介绍一下。

Python Imaging Library ( PIL ) 给 Python 增加了图像处理能力。

这个库提供了广泛的文件格式支持,高效的内部展现,以及十分强大的图像处理能力。

让我们看看这个库的几种可能用法:

1· 图像存储
PIL 设计用于图像归档和图像批量处理,你可以使用它建立缩略图,转换格式,打印图片等等。现在的版本可以验证和读取大量的图片格式。写入有意设计为只能写入常用的文件格式。

2·图像显示
现在的版本包含了 Tk PhotoImage 和 BitmapImage 接口, 以及 Windows DIB interface,这有助于在 Windows 下使用。为了方便测试,还提供了 show() 方法,可以保存图像到磁盘并显示。

3·图像处理
这个库包含了基本的图像处理功能,包括点操作,使用内置卷积内核过滤,色彩空间转换。这个库还支持更改图像大小、旋转、自由变换。有一个直方图方法允许你统计图像,这可以用于对比度增强和全局统计分析。

小面我贴一下文档的一些入门介绍:


贴文档做翻译的事情我就不做了大家可以自己去看看。

文档链接:传送门

特别介绍

用Python批量缩放图片相关推荐

  1. 基于Python使用ffmpeg批量缩放图片

    基于Python使用ffmpeg批量缩放图片 一.前言 ​ 笔者因为项目原因或者个人撰文需要,经常要写大量技术文档,文档中通常需要配图,但配图就有一个比较讨厌的问题:截图大小不一,宽度通常要手动调整, ...

  2. 使用Python批量压缩图片

    使用Python批量压缩图片 Python脚本 #coding:utf-8 import Image import os import os.path def picIsCorrect(fileSuf ...

  3. Python批量导入图片生成能治疗颈椎病的HTML5版课件

    本文要点:Python文件操作,HTML5的figure元素和CSS3属性的用法. 说明:1):本文图片来自于相关阅读中Python批量导出多个PPT/PPTX文件中每个幻灯片为独立JPG图片或Pyt ...

  4. python批量读取图片gps位置_某少儿不宜网站图片拍摄位置分析,Python批量读取图片GPS位置!...

    原标题:某少儿不宜网站图片拍摄位置分析,Python批量读取图片GPS位置! 1. python读取图片exif属性中的GPS信息 智能手机或平板如果在拍照时开启定位服务,照片中就会记录拍照位置信息和 ...

  5. python批量导入图片_Python批量导入图片生成PowerPoint 2007+文件

    原标题:Python批量导入图片生成PowerPoint 2007+文件 说明:本文是"Python批量爬取微信公众号文章中的图片"的后续文章,用来把从公众号批量抓取的图片还原为P ...

  6. 教你怎么使用python批量下载图片

    教你怎么使用python批量下载图片 文章目录 教你怎么使用python批量下载图片 前言 一.运行环境 1. win10 2. python==3.7.2 二.需要用到的参数 1. download ...

  7. python批量裁剪图片_python批量剪切图片实现代码

    例子,python入门实例,python实现图片批量剪切. 代码: 代码示例: #!/usr/bin/python # www.# import os from PIL import Image #批 ...

  8. 用Python批量修改图片名称及后缀名

    用Python批量修改图片名称及后缀名 import os a = 'dataset3\png/'//需要修改的图片所在的文件夹 b = 'dataset2\png/'//修改后的图片存放路径 fil ...

  9. Python批量压缩图片

    Python批量压缩图片 代码如下 代码如下 可支持压缩指定单张图片,单个文件夹,多个文件夹,可根据自己实际场景的需求扩展丰富.话不多说,上代码. # @Time : 2021/10/14 9:16i ...

最新文章

  1. Linus Torvalds:Linux背后的智者
  2. Gluster 常用命令
  3. centos7安装mongodb详解
  4. 制作基于http的yum源2
  5. 揭开知识库问答KB-QA的面纱1·简介篇
  6. SAP UI5 oList.bindAggregation(item) will trigger odata request
  7. mysql 服务无法启动 没有报告任何错误_My SQL学习之路(一)
  8. 去除 position:fixed 抖动的方法
  9. DFB [02] 基础和相关的非常用的几个链接
  10. Chrome DevTools的Network面板
  11. 多种方式创建 Entity Framework Core 上下文
  12. python应用举例_python基础举例应用
  13. 联想G480安装CentOS有线驱动
  14. 健康知识api根据健康知识ID查询详细信息
  15. 大数据趣味学习探讨(三):怎么确定学习目标
  16. 英语国际音标发音——见标能读
  17. 新版 OPPO Enco Free 2 固件工具 (仅供交流学习使用)
  18. MIS(管理信息系统)
  19. 小众即时通信工具专项整治启动,关停“比邻”“聊聊”“密语”等9款违法App...
  20. 最快的 Hexo 博客搭建方法

热门文章

  1. SPSS学习(1)之数据录入与数据获取
  2. 66W真的比60W充电更快吗?基于Charge pump Charger的快充方案分析
  3. 利用计算机软件温度补偿,一种计算机硬件设备专用温度补偿系统的制作方法
  4. 设计分享|基于单片机的矩阵电子琴(汇编)
  5. Overload vs Override
  6. 我改变世界、我已看透、我不再是个程序员-IT创世诸神如是说
  7. 阿拉伯数字转中文 JAVA
  8. [机缘参悟-84]:读《心若菩提 - 曹德旺》有感
  9. win10家庭版计算机登录名,怎样让Win10专业版/企业版/家庭版的登录界面显示用户名输入框...
  10. 瑞晟蓝牙来电语音软件下载_语音来电秀app下载-语音来电秀 安卓版v12.6-PC6安卓网...