使用 Caesium Image Compressor 进行无损图片压缩

Caesium Image Compressor 是一款非常好用的图像压缩程序(对于PNG和JPEG批量压缩来说,可以算是最好用的程序),整合了Oxipng,mozjpeg 等高效的图片压缩库,支持 JPEG、PNG、WEBP、TIFF 四种图片格式。

软件本体可以在 Caesium官网Github release页面 下载。

本文适用于 Caesium Image Compressor 2.7.1版本,因为在2.7版本后,程序内置的Oxipng库更新到最新且支持了压缩级别调节,PNG压缩率得到大幅提升。

本文只会介绍其中最常用的 JPEG无损 和 PNG无损 压缩模式。

什么是无损图像压缩?

无损图像压缩指在完全不改变原图像内容的情况下减小图片体积。大部分 JPEG 图像压缩软件基本都会降低原图的画质,而无损图像压缩通过算法优化、剔除无关数据等方式实现,不影响图片本身内容,在压缩前后对图像进行逐像素对比,结果会是两者完全相同,对于需要进行图片原封不动收藏的用户来说非常实用。

下载安装完成后,打开软件可以看到主界面
在这里插入图片描述

在这里插入图片描述
此时需要先进行一些简单的设置
首先点击顶部的选项按钮

在这里插入图片描述
在弹出的选项界面中勾选多线程选项,右侧的线程数根据自己电脑的CPU线程数量适当选择(如不了解线程和核心数是什么, 可以无视此选项)

在这里插入图片描述
主界面右侧的压缩选项区域,要注意的有三个点。
首先勾选下方的无损压缩选项,此时才会切换到无损模式。

底部的保留元数据按需求勾选,元数据储存了图片的拍摄信息,如时间地点,光圈快门,照片方向参数等,如果不需要可以不勾选这个选项,以减小图片体积。

上方的优化级别仅针对PNG图片,这是Caesium内置的Oxipng库的参数,优化级别越高,压缩耗时越长,压缩率越高。需要注意,最高级别的压缩时间极其漫长,且压缩率相比低级别只有微乎其微的提升(对大部分图片只有1%左右的提升),推荐设置为 3 ,此时有较高的压缩率和较快的压缩速度。

在这里插入图片描述
点击输出页面可以调整输出设置,一般直接把压缩的图片输出到原目录并覆盖原图片,大部分用户按图中设置勾选即可,如有自定义需求可以自行更改输出方式。

在这里插入图片描述
配置完成后,在主页选择文件夹或文件,也可以直接批量拖动文件夹和文件到主页,图片就会被添加到待处理列表中。
点击下方的压缩按钮即可进行压缩。

在这里插入图片描述
压缩完成后会弹出压缩结果,显示节省了多少空间,一般未经压缩的jpeg进行无损压缩后能节省5%至10%左右的空间,png图片能节省10%至30%(对于有大片同色区域的图片效果更加明显,甚至会有体积减少80%的情况)

### 如何通过代码使用 Caesium图片进行压缩 #### 使用命令行调用 Caesium 压缩单张图片 可以通过命令行工具 `npx` 调用 Caesium 的 CLI 工具来完成图片压缩任务。以下是具体的命令示例: ```bash npx caesium-image-compressor ./path/to/your/image/example.jpg --output ./compressed/ ``` 上述命令会将指定路径下的图片文件 `example.jpg` 压缩并保存到目标目录 `./compressed/` 中[^1]。 --- #### 批量压缩图片的 Shell 脚本实现 对于需要批量处理的情况,可以编写一个简单的 Linux Shell 脚本来遍历文件夹中的所有图片,并逐一应用 Caesium 进行压缩。以下是一个完整的脚本示例: ```bash #!/bin/bash # 定义输入和输出目录 INPUT_DIR="./images/" OUTPUT_DIR="./compressed/" # 创建输出目录(如果不存在) mkdir -p "$OUTPUT_DIR" # 遍历 INPUT_DIR 文件夹中的所有 .jpg 和 .png 文件 for file in "$INPUT_DIR"*.jpg "$INPUT_DIR"*.png; do if [[ -f "$file" ]]; then # 获取文件名部分 filename=$(basename "$file") # 调用 Caesium 命令进行压缩 npx caesium-image-compressor "$file" --output "$OUTPUT_DIR/$filename" fi done ``` 此脚本能够自动检测指定文件夹内的 `.jpg` 或 `.png` 文件,并逐一对它们执行压缩操作[^4]。 --- #### 结合 Python 和 Pillow 库预处理图片后再压缩 为了进一步增强功能,可以在压缩前利用 Python 的 Pillow 库对图片进行裁剪、调整尺寸或其他预处理操作。下面是一段综合使用的代码示例: ```python from PIL import Image import os import subprocess def compress_image(input_path, output_path): """ 使用 Caesium 压缩图片 """ command = f'npx caesium-image-compressor "{input_path}" --output "{output_path}"' subprocess.run(command, shell=True) def preprocess_and_compress(image_path, output_dir): """ 图片预处理与压缩流程 """ img = Image.open(image_path) # 示例:调整图片大小为 800x600 resized_img = img.resize((800, 600)) # 将临时文件存储至当前工作目录 temp_file = 'temp_resized_image.png' resized_img.save(temp_file) # 确保输出目录存在 os.makedirs(output_dir, exist_ok=True) # 输出文件名称基于原始文件命名 base_name = os.path.basename(image_path) output_file = os.path.join(output_dir, base_name) # 调用 Caesium 压缩函数 compress_image(temp_file, output_file) # 清理临时文件 os.remove(temp_file) # 测试调用 preprocess_and_compress('./images/example.jpg', './compressed/') ``` 该代码实现了先通过 Pillow 处理图片再调用 Caesium 压缩的功能组合[^2]。 --- #### 关于图像质量和性能优化的重要性 在实际开发过程中,保持高图像质量的同时降低文件体积是一项重要挑战。Caesium 提供了多种参数设置以满足不同场景需求,例如调节压缩率或启用无损模式等。合理配置这些选项有助于改善用户体验并提高网页加载速度[^3]。 --- #### 删除敏感 EXIF 数据的安全措施 需要注意的是,许多数码相机拍摄的照片可能携带大量隐私信息(如 GPS 地址)。因此,在上传网络之前应考虑移除此类数据。虽然 Caesium 自身不直接支持这一功能,但可借助其他第三方工具配合完成此项任务[^5]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值