Trimage 压缩图片是无损的吗?会删除哪些信息?
更新时间
Trimage 对 PNG 和 JPG 采用无损压缩,不会降低图片画质,但会移除 EXIF 和其他元数据。它按文件类型调用不同的优化工具:PNG 使用 optipng、pngcrush、advpng,JPG 使用 jpegoptim,并以可用的最高压缩级别处理。目前只支持 PNG 和 JPG 两种格式。
无损压缩的含义
“无损”指像素数据本身不被改写,压缩只发生在文件编码层面:去掉冗余的编码信息、重新组织压缩块,让文件变小而解码后的图像与原来一致。因此画质不会因为压缩而下降,但文件体积的缩小幅度取决于原图本身有多少可优化的空间——已经优化过的图片再压缩,收益可能很小。
需要注意,“无损”与“删除元数据”是两件事。像素无损,不代表文件内容完全不变。
会删除哪些信息
根据网站说明,Trimage 在压缩时会移除 EXIF 和其他元数据。这意味着:
- EXIF:拍摄设备、拍摄参数、时间戳、GPS 位置等
- 其他元数据:嵌入在文件中的附加信息
对网页用途来说,这通常是好事——元数据不参与显示,删掉能进一步减小体积,也能避免意外泄露位置等信息。但如果你需要保留版权信息、拍摄参数或色彩配置文件,就要先备份原图,再决定是否用 Trimage 处理。
按格式调用不同工具
Trimage 本身是图形界面和命令行的外壳,实际压缩交给底层工具完成:
| 文件类型 | 调用的优化工具 |
|---|---|
| PNG | optipng、pngcrush、advpng |
| JPG | jpegoptim |
这些工具各自擅长不同的优化策略,Trimage 把它们组合起来,在最高可用压缩级别下运行。你不需要分别安装和调用它们,但运行环境里需要具备这些依赖(见下文)。
支持范围与使用前提
目前仅支持 PNG 和 JPG。其他格式(如 GIF、WebP、SVG)不在处理范围内。
运行要求(来自网站 Requirements 部分):
- Python 3
- python-qt5
- optipng 0.6.2.1
- pngcrush 1.6.7
- advancecomp 1.15
- jpegoptim 1.2.2
安装方式按平台区分:
- Debian(sid):
sudo apt-get install trimage - Ubuntu:官方仓库提供,
sudo apt-get install trimage - Arch Linux:从 AUR 安装,
yaourt -S trimage - macOS:
brew install trimage,之后在终端执行trimage启动 - *其他 nix:通过 git 或 bzr 获取源码,装好依赖后执行
python setup.py install,再运行trimage
输入方式与命令行选项
Trimage 提供多种输入方式以适配不同工作流:常规文件对话框、拖拽文件,以及命令行参数。
命令行选项(来自网站说明):
--version:显示版本号并退出-h, --help:显示帮助并退出-v, --verbose:详细模式(默认)-q, --quiet:安静模式-f FILENAME, --file=FILENAME:压缩指定图片后退出-d DIRECTORY, --directory=DIRECTORY:压缩指定目录中的图片后退出
例如需要批量处理一个目录下的图片,可以用 -d 指向该目录,处理完即退出,适合放进脚本。单张处理用 -f。
怎么判断是否适合你
- 适合:为网站准备 PNG/JPG 素材,希望减小体积、去掉元数据,且不需要保留 EXIF 或版权嵌入信息。
- 需要谨慎:图片带有必须保留的元数据(如摄影作品的拍摄参数、色彩配置),或格式不是 PNG/JPG。
- 预期管理:压缩是无损的,画质不变,但体积收益因图而异;处理前保留原图备份是稳妥做法。
项目以 MIT 许可发布,主要开发在 GitHub 上进行,bug 通过 GitHub 报告,一般问题可发邮件至 [email protected]。