一文教会你使用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厘米。以上换算可参考链接www.gaitubao.com/tools/pixel… 。但是按230像素的宽度压缩后,自动填充到Word文档中后,图片宽度变成了8厘米,已经超过单元格的宽度了。通过调试,最终将标准宽度设定为165像素,填入word中后,宽度是5.82厘米,比较适合单元格宽度。这个差异可能是换算的不精确导致。确定好标准宽度x_s后,高度y_s按照标准宽度乘上原始高宽比来确定,这样就是保持比例压缩,不会导致图片变形。压缩resize后,再保存到新的文件夹。

#按比例缩小图片尺寸
from PIL import Image
for 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批量缩放图片的文章就介绍到这了,更多相关Python批量缩放图片内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • python+pyqt5实现图片批量缩放工具

    批量修改图片大小好像用PS也可以,不过我不会,程序猿就用程序来解决. 这段时间学了下Python,很强大,之前一些不知道怎么处理的东西在Python里面都能找到解决方法. 工具界面如下图 这个工具需要用到第三方库 Pillow 和 Pyqt5,可通过命令行安装. pip install pillow pip install pyqt5 代码: #!-*-coding:utf-8-*- from PIL import Image import hashlib, os, sys from PyQt5

  • python实现批量按比例缩放图片效果

    本文实例为大家分享了python实现批量按比例缩放图片的具体代码,供大家参考,具体内容如下 把脚本文件放在要缩放的文件夹下面. 双击运行脚本,输入要缩放的系数.脚本会在当前目录下创建一个scaledImg_xxxx文件夹,如果已经存在,会强制删除,如果删除失败会提示手动删除这个文件夹,再双击运行就可以了. resizeImg.py #!/usr/bin/python # -*- coding:utf8 -*- #author@skillart www. import os import shut

  • Python实现图片尺寸缩放脚本

    最近由于网站对图片尺寸的需要,用python写了个小脚本,方便进行图片尺寸的一些调整,特记录如下: # coding=utf-8 import Image import shutil import os class Graphics: infile = 'D:\\myimg.jpg' outfile = 'D:\\adjust_img.jpg' @classmethod def fixed_size(cls, width, height): """按照固定尺寸处理图片&quo

  • 一文教会你使用Python批量缩放图片

    目录 导读 实际演示阶段 详细介绍该库 总结 导读 为了解决图片被改变大小后,比例保持不变(这样就不会变形了) 图片需要压缩,避免填图后的word文件太大通过Image模块中的resize函数,就能给解决如上问题.我们还是先按“修改时间”顺序获取图片文件夹下的所有图片的完整路径 实际演示阶段 我们需要做的事情就是将图一变为图二 图一: 图二: 进行等比例缩小. #将图片按修改时间排序(这样才能与图片的描述一致),将路径存入列表,以便后面逐个插入图片时调用 import os path = "pi

  • python批量修改图片大小的方法

    本文实例为大家分享了python批量修改图片大小的具体代码,供大家参考,具体内容如下 引用的模块 from PIL import Image Image的使用 def resize_image(img_path): try: mPath, ext = os.path.splitext(img_path) if astrcmp(ext, ".png") or astrcmp(ext, ".jpg"): img = Image.open(img_path) (width

  • Python批量修改图片分辨率的实例代码

    前言:处理图片需要,需把图片都转换成1920*1280的大小, python实现很方便,需要导入图片处理的Image包和匹配的glob包,很简单,代码如下: img_path = glob.glob("D:/chosed/*.jpg") path_save = "D:/closedd" for file in img_path: name = os.path.join(path_save, file) im = Image.open(file) im.thumbna

  • python批量修改图片尺寸,并保存指定路径的实现方法

    如下所示: import os from PIL import Image filename = os.listdir("D:\\Work\\process\\样本处理\\polyu-all-train") base_dir = "D:\\Work\\process\\样本处理\\polyu-all-train\\" new_dir = "D:\\Work\\process\\样本处理\\polyu\\" size_m = 128 size_n

  • python批量复制图片到另一个文件夹

    本文实例为大家分享了python批量复制图片到文件夹的具体代码,供大家参考,具体内容如下 直接上代码: # -*- coding: utf-8 -*- """ Created on Mon Apr 02 21:03:44 2018 @author: Fsl """ import shutil #这个库复制文件比较省事 def objFileName(): ''' 生成文件名列表 :return: ''' local_file_name_list

  • python批量识别图片指定区域文字内容

    Python批量识别图片指定区域文字内容,供大家参考,具体内容如下 简介 对于一张图片,需求识别指定区域的内容 1.截取原始图上的指定图片当做模板 2.根据模板相似度去再原始图片上识别准确坐标 3.根据坐标剪切出指定位置图片,也就是所需的内容区域 4.对指定位置图片进行ocr识别 环境 Ubuntu18.04 Python2.7 所需Python模块 1.aircv 用于识别模板再原始图的位置坐标 pip install aircv 2.Pillow 用于剪裁图片 pip install Pil

  • python批量修改图片后缀的方法(png到jpg)

    本人最近在利用faster_rcnn训练kitti数据集,其中需要将kitti数据集转为voc数据集,但是发现: kitti图片是png格式 voc2007是jpg格式 其中有7000多张图片需要批量转换,在网上发现一些代码,但跑起来有错误,于是本人稍作修改: import os import string dirName = "D:your path\\" #最后要加双斜杠,不然会报错 li=os.listdir(dirName) for filename in li: newnam

  • Python批量将图片灰度化的实现代码

    技术关键 os 模块的使用 使用 os.getcwd 获取当前路径 使用 os.listdir()获取文件列表 使用 os.path.splitext() 分割文件名和扩展名 使用 PLI 的 convert('L') 方法将图片转为灰度 代码实现 from PIL import Image import os path = os.getcwd() # 获取当前路径 file_list = os.listdir() for file in file_list: filename = os.pat

  • python 批量压缩图片的脚本

    简介 用Python批量压缩图片,把文件夹或图片直接拖入即可 需要 Needs Python 3 Pillow (用pip install pillow来安装即可) 用法 Usage 把文件夹或图片直接拖入即可.如果拖入的是文件夹,则会遍历子文件夹把所有图片都压缩了. 注意,压缩后的文件会直接替换原来的文件,文件名不变,尺寸不变,只改变压缩质量. 文件的开头有两个变量: SIZE_CUT = 4 表示大于4MB的图片都会进行压缩 QUALITY = 90 表示压缩质量90,这个质量基本人眼是看不

  • Python批量添加图片水印的实现

    目录 一.前言 二.文字水印 三.图片水印 一.前言 现在盗图是非常常见的事情,许多人在使用图片时都不会标注图片的出处或者提及作者,这个时候水印就是个很好的东西了.我们可以给图片添加水印后再分享出去,这样就可以让其它人知道图片作者相关的信息.今天我们就带大家来实现水印的添加. 二.文字水印 在添加水印的时候,我们比较常用的就是文字水印.比如@ZackSock.@juejin:ZackSock等.这种水印的添加非常简单,只需要使用到Pillow模块的添加文字的操作即可,代码如下: from PIL

随机推荐