尽可能得减小图片大小

1006 字
5 分钟
尽可能得减小图片大小
TIP

现在可以直接通过PicList在上传的时候顺便压缩,而且还可以更改质量,所以方法一就看起来比较麻烦了,如果你要直接上传图片的话建议直接使用PicList。

我最近搭建了一个图床,既想要画质足够高,又想要图片大小尽可能小,经过一段时间的研究发现下面一套方式最适合我。

方式一:使用Imagine转换格式为webp#

Imagine是我目前的看图软件,比较小巧,而且界面风格比较喜欢(类似于7zip那种风格),恰好软件自带图片转换功能,对于我来说算是比较够用了。

我将会用这个软件将图片全部转换为webp格式,如果本身是webp就没有用了,不过本身是webp格式的图片大小应该都比较小吧。

什么是webq文件#

webq格式是一种使用于网络的图片格式,它所占的空间非常小,可以减小网站流量,具体参见谷歌说明

界面说明#

因为操作特别简单就不说了

下面是转换的界面,虽然没有什么压缩选项,改不了压缩质量,不过它这个转换后的大小还是比较小的。

而根据我的实测,他的压缩质量应该是90(最低0,最大100)

界面展示
界面展示

接下来是转换前后大小对比,7524KB的png图片经过转换后变成了532KB的webp图片

大小展示
大小展示

接下来是画质之间的区别,我认为是可以接受的

画质区别
画质区别

方式二:使用预编译 cwebp 转换工具#

这是谷歌官方推出的命令行程序,这是官方下载地址,支持的输入格式有WebP, PNM (PGM, PPM, PAM), Windows Imaging Component (WIC),如果不知道这个是什么就当作windows自带的图片查看器能查看的它都支持。

这个工具就很强大了,可以修改很多参数。

添加好环境变量之后应该怎么使用呢,输入cwebp -h 可以获得简要压缩命令格式帮助,输入cwebp -longhelp获得详细命令格式帮助。

一般来说可能会使用的参数如下:

-q <float> ............. quality factor (0:small..100:big), default=75
-alpha_q <int> ......... transparency-compression quality (0..100),
default=100
-preset <string> ....... preset setting, one of:
default, photo, picture,
drawing, icon, text
-z <int> ............... activates lossless preset with given
level in [0:fast, ..., 9:slowest]
-lossless .............. encode image losslessly, default=off
-q <float> ............. 设置图像压缩的质量因子,取值范围为 0到 100,默认值为 75。
-alpha_q <int> ......... 设置透明通道(Alpha 通道)的压缩质量,取值范围为0–100,默认值为100
-preset <string> ....... 编码预设, 用于针对不同类型的图像内容自动调整内部编码参数,以下任选一个:
default, photo, picture,
drawing, icon, text
-z <int> ............... 启用无损压缩模式,并指定压缩级别。取值范围为 0(压缩最快,压缩率较低)到 9(压缩最慢,压缩率最高)。
-lossless .............. 使用无损方式对图像进行编码,默认关闭

我感觉-z和-longless差不多,一般我会用-longless来进行无损压缩

接下来是多文件转换命令

Terminal window
# powershell 版本
Get-ChildItem -File *.jpg,*.jpeg,*.png | % { cwebp $_.FullName -q 80 -o "$($_.BaseName).webp" }
Terminal window
:: cmd版本
for %f in (*.jpg *.jpeg *.png) do cwebp "%f" -q 80 -o "%~nf.webp"

bat代码,将当前目录的图片全部转换为webp

Terminal window
@echo off
for %%f in (*.jpg *.jpeg *.png) do (
echo Converting %%f
cwebp "%%f" -q 80 -o "%%~nf.webp"
)
echo Done.
pause

方式三:使用 ImageMagick 进行转换#

这个命令行程序我没有研究过多,暂时不说明

冗余步骤:使用tinypng进行压缩#

其实这个步骤没有必要,毕竟方案二和方案三比这个要强大,但是却比较复杂。可以用这个进行一个平替。

总结#

以上这几个步骤对于我来说也是够用了,压缩后的体积和大小都还能接受。

文章分享

如果这篇文章对你有帮助,欢迎分享给更多人!

尽可能得减小图片大小
https://blog.backsoon0.top/posts/img-compress/
作者
Backsoon0
发布于
2026-01-20
许可协议
CC BY-NC-SA 4.0

评论区

Profile Image of the Author
Backsoon0
我要什么,我不知道,我不是无欲无求,我只是不知所求。
公告
正在搭建网站
音乐
封面

音乐

暂未播放

0:00 0:00
暂无歌词
分类
标签
站点统计
文章
4
分类
3
标签
4
总字数
5,182
运行时长
0
最后活动
0 天前

目录