python怎么把图片压缩_使用Python轻松批量压缩图片
在互联网,图片的大小对一个网站的响应速度有着明显的影响,因此在提供用户预览的时候,图片往往是使用压缩后的。如果一个网站图片较多,一张张压缩显然很浪费时间。那么接下来,我就跟大家分享一个批量压缩图片的方法,只需几行python代码,即可轻松实现图片压缩。
压缩算法
用到PIL库,PIL是Python平台事实上的图像处理标准库,支持多种格式,并提供强大的图形与图像处理功能。使用如下命令安装:
pip install pillow
代码如下:
#图片压缩批处理
def compressImage(srcPath,dstPath):
for filename in os.listdir(srcPath):
#如果不存在目的目录则创建一个,保持层级结构
if not os.path.exists(dstPath):
os.makedirs(dstPath)
#拼接完整的文件或文件夹路径
srcFile=os.path.join(srcPath,filename)
dstFile=os.path.join(dstPath,filename)
# 如果是文件就处理
if os.path.isfile(srcFile):
try:
#打开原图片缩小后保存,可以用if srcFile.endswith(".jpg")或者split,splitext等函数等针对特定文件压缩
sImg=Image.open(srcFile)
w,h=sImg.size
dImg=sImg.resize((int(w/2),int(h/2)),Image.ANTIALIAS) #设置压缩尺寸和选项,注意尺寸要用括号
dImg.save(dstFile) #也可以用srcFile原路径保存,或者更改后缀保存,save这个函数后面可以加压缩编码选项JPEG之类的
print (dstFile+" 成功!")
except Exception:
print(dstFile+"失败!")
# 如果是文件夹就递归
if os.path.isdir(srcFile):
compressImage(srcFile, dstFile)
方法调用
1.在该python文件所在目录新建三个目录,prepare(存放待压缩图片)、finish(压缩完成的原图)和compress(存放压缩后的图片)
2.遍历prepare目录,将图片移动到finish目录
3.遍历compress目录删除压缩图片
4.将finish中的图片全部进行压缩,对应存到compress目录
if __name__ == '__main__':
# 遍历待加入图片
path = os.walk("./prepare")
for root, dirs, files in path:
for f in files:
shutil.move(os.path.join(root,f),os.path.join('./finish',f)) #移动文件
# 遍历删除压缩图片
path = os.walk("./compress")
for root, dirs, files in path:
for f in files:
os.remove(os.path.join(root, f))
# 压缩图片
compressImage("./finish","./compress")
完整代码
新建photo.py,复制如下代码
from PIL import Image
import os,shutil
#图片压缩批处理
def compressImage(srcPath,dstPath):
for filename in os.listdir(srcPath):
#如果不存在目的目录则创建一个,保持层级结构
if not os.path.exists(dstPath):
os.makedirs(dstPath)
#拼接完整的文件或文件夹路径
srcFile=os.path.join(srcPath,filename)
dstFile=os.path.join(dstPath,filename)
# 如果是文件就处理
if os.path.isfile(srcFile):
try:
#打开原图片缩小后保存,可以用if srcFile.endswith(".jpg")或者split,splitext等函数等针对特定文件压缩
sImg=Image.open(srcFile)
w,h=sImg.size
dImg=sImg.resize((int(w/2),int(h/2)),Image.ANTIALIAS) #设置压缩尺寸和选项,注意尺寸要用括号
dImg.save(dstFile) #也可以用srcFile原路径保存,或者更改后缀保存,save这个函数后面可以加压缩编码选项JPEG之类的
print (dstFile+" 成功!")
except Exception:
print(dstFile+"失败!")
# 如果是文件夹就递归
if os.path.isdir(srcFile):
compressImage(srcFile, dstFile)
if __name__ == '__main__':
# 遍历待加入图片
path = os.walk("./prepare")
for root, dirs, files in path:
for f in files:
shutil.move(os.path.join(root,f),os.path.join('./finish',f)) #移动文件
# 遍历删除压缩图片
path = os.walk("./compress")
for root, dirs, files in path:
for f in files:
os.remove(os.path.join(root, f))
# 遍历压缩图片
compressImage("./finish","./compress")
最后,大家只要把要压缩的图片放入prepare目录,然后执行photo.py即可。
python怎么把图片压缩_使用Python轻松批量压缩图片相关推荐
- indesign选中不了图片删除_(54)批量给图片加上说明文字
在<(32)一次置入多张图片>一文中我介绍了如何在 InDesign 中批量插入图片的方法,那么如何批量给这些图片加上说明文字呢?本文就谈谈这个问题. 给图片添加的说明文字在 InDesi ...
- 如何批量压缩图片?这两种方法轻松批量压缩
怎么批量压缩图片呢?图片是我们日常生活中常用的一种文件形式,不管是游玩还是学习或办公,或多或少都会使用到图片.但是随着智能手机的相机功能越来越强大,像素越来越高,所拍摄出来的照片内存非常大,当使用的图 ...
- 多张图片怎么压缩?教你一键批量压缩图片
想必大家看了许多压缩图片的教程,对于单张图片的压缩已经不陌生了.那么大家一定会问了:"我手里有很多图片要是一张一张的压缩岂不是很费事,有没有什么软件可以多张图片同时进行压缩呢?"别 ...
- python图片压缩算法_使用K均值算法进行图片压缩
K均值算法 上一期介绍了机器学习中的监督式学习,并用了离散回归与神经网络模型算法来解决手写数字的识别问题.今天我们介绍一种机器学习中的非监督式学习算法--K均值算法. 所谓非监督式学习,是一种与监督式 ...
- python根据文件名打标签_使用python将图片按标签分入不同文件夹的方法
给定图像集如下,所有类别的图片均在一个文件夹内: 给定与图片名相匹配的表格,声明每张图片对应的类别(共有20个类别): 那么,如何根据表格中所给的类别将图片分入对应的文件夹内呢?以我的情况为例,我想将 ...
- img绝对路径图片显示_使用python爬虫去风景图片网站批量下载图片
使用python爬虫(requests,BeautifulSoup)去风景图片网站批量下载图片 1.写代码背景: 今天闲来无事,想弄点图片放到电脑,方便以后使用,故去百度查找一些风景图片网站,发现图片 ...
- python爬虫爬取百度图片总结_爬虫篇| 爬取百度图片(一)
什么是爬虫 网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本.另外一些不常使用的名字还有蚂蚁.自动索引.模 ...
- python改图片颜色_通过python改变图片特定区域的颜色详解
首先让我祭出一张数学王子高斯的照片,这位印在德国马克上的神人有多牛呢? 他是近代数学的奠基人之一,与牛顿, 阿基米德并称顶级三大数学家,随便找一个编程语言的数学库,里面一定有和他名字相关的一堆函数. ...
- python保存图像的色彩_使用python检测图片上的色彩
使用python检测图片上的色彩 面对一张色彩绚丽的图片,你很像知道某一块的颜色是什么,这包括色彩的名字和这一点上色彩的RGB值,但在缺少专业工具的情况下,这似乎是一个难以完成的任务,但python可 ...
最新文章
- Python 之 Pandas (八)图像
- 三角测距激光重建算子HALCON
- macos可以升级到指定版本吗_iOS13系统终结版本即将出现,iOS13.5还值得升级吗
- vue/cli 3.0 与 2.0脚手架怎样mock数据
- 《银翼杀手2049》:活着不只为了“存在”
- 运行第一个docker容器
- 重建程序员能力(2)-如何使asp.net mvc应用增加js和其他功能
- c#:winform中多线程的使用
- mysql 语句 not_mysql sql语句 is not 用法是
- html img返回上级目录,HTML相对路径 上级目录及下级目录的写法_HTML/Xhtml_网页制作...
- free, iostat, Linux, top, uptime, vmstat
- 剑指Offer+第37题+两个链表的第一个公共节点+java
- 用python实现等额本息
- STEP标准执行方法-ISO-10303-21
- asp.net在线考试系统实习报告
- Joseph Darcy卸任OpenJDK 6负责人
- 【Java 代码实例 13】Java操作pdf的工具类itext
- 文件上传漏洞—一句话图片马制作
- 2022PTA天梯赛-全国总决赛试题(个人python解题记录)(更新中)
- 关于Julia1.0及以后版本的for循环产生错误ERROR: UndefVarError: variable not defined的解决方法