无名商城论坛

搜索
查看: 884|回复: 0

[TSD/原创] 【FUT】10 行 Python 代码,批量压缩图片 500 张

[复制链接]

1万

主题

1万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
32464
发表于 2022-5-8 20:23:20 | 显示全部楼层 |阅读模式
首先我们要用到的工具:python3(说的废话),tinypng网站,第三方库

我们先来介绍tinypng网站是什么:Tinypng是一款来自国外的在线图片压缩云应用,完全免费无需注册。Tinypng采用的压缩图片方式是有损压缩,也就是说你上传的PNG图片经过压缩后,部分颜色信息会丢失。
Tinypng是什么?Tinypng的基本介绍.jpg
Tinypng的基本介绍
批量图片压缩原理:使用智能的无损压缩技术来减少图片文件的大小,通过智能的选择颜色的数量,减少存储的字节,但是效果基本是和压缩前一样的。
批量压缩图片后,10张压缩图片以内,支持打包下载,多了不允许下载,在有 BUG 的情况下请联系站长反馈。
Tinypng支持格式
在线图片压缩,支持[.jpg] 、[.jpeg] 、[.png]、[.bmp]、还支持[.webp]格式。
Tinypng的使用
24位的PNG图片上传经过压缩会变成8位的PNG图片,70%的压缩率就是这样来的,如果仔细观看图片还是能发现和原图是有差别的,特别是渐变过渡。
以上是关于Tinypng的内容

这个网站也是非常良心,开放了免费的 API ,API 取消了每张大小的限制,只限定每个月处理 500 张图片。这对我来说,已经足足有余了。

下面介绍怎么使用它。第一步是在它网站上注册,获得专属的 API_KEY。使用的是邮箱注册,很简单。

然后是安装 package:

pip install --upgrade tinify

import tinify
import os

tinify.key = '此处填入你的key'
path = "C:\\Users\\yunpoyue\\Pictures\\cat" # 图片存放的路径

for dirpath, dirs, files in os.walk(path):
    for file in files:
        imgpath = os.path.join(dirpath, file)
        print("compressing ..."  imgpath)
        tinify.from_file(imgpath).to_file(imgpath)
不到 10 行代码,轻轻松松就批量压缩图片,简直不要太爽!20 M 的图片能压缩到 2 M,压缩率达到惊人的 90%,成绩喜人。

它的API还提供图片裁剪、加水印、保存压缩图片至云服务商(亚马逊云、谷歌云)等功能,非常强大。除压缩过程有点慢,其它无可挑剔。

以上是个人觉得[玫瑰][玫瑰][玫瑰][玫瑰][玫瑰][玫瑰][玫瑰]
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表