在日常工作和生活中,我们经常需要处理图片文件。为了节省存储空间、加快网页加载速度或便于传输,对图片进行压缩是一个常见的操作。
在 Ubuntu22 系统下,借助命令行工具,我们可以高效、批量地完成图片压缩任务。
本文将详细介绍几种常用的命令行图片压缩工具及其使用方法,帮助你轻松掌握在 Ubuntu22 中压缩图片的技巧。
ImageMagick 是一款功能强大且开源的图像处理软件,支持多种图像格式的读写与处理,当然也包括图片压缩。在 Ubuntu22 中,可以通过以下命令安装:
sudo apt update sudo apt install imagemagick
安装完成后,就可以使用它提供的一系列命令来处理图片了。
ImageMagick 提供了convert 命令来处理图片,通过调整参数可以实现图片压缩。例如,要将名为example.jpg 的 JPEG 图片压缩并保存为 example_compressed.jpg,可以使用以下命令:
convert example.jpg -quality 60 example_compressed.jpg
上述命令中,-quality参数用于指定图片质量,取值范围是 0 到 100,数值越低,压缩率越高,但图片质量也会相应下降。你可以根据实际需求调整这个参数。
如果要处理 PNG 图片,同样可以使用convert命令,例如:
# 压缩图片 hxstrive@g450:~/workspace$ convert example.jpg -quality 60 example_compressed.jpg # 查看压缩结果 hxstrive@g450:~/workspace$ ll total 228 drwxrwxr-x 2 hxstrive hxstrive 4096 Apr 18 02:46 ./ drwxr-x--- 12 hxstrive hxstrive 4096 Apr 18 02:45 ../ -rw-rw-r-- 1 hxstrive hxstrive 102084 Apr 18 02:46 example_compressed.jpg -rw-r--r-- 1 hxstrive hxstrive 120673 Apr 18 02:41 example.jpg
上面输出中,压缩前大小为 120673,压缩后大小为 102084。
对于批量处理图片,可以使用通配符。比如,要压缩当前目录下所有的 JPEG 图片,可以执行以下命令:
for file in *.jpg; do convert "$file" -quality 60 "${file%jpg}-compressed.jpg"; done
上述命令会遍历当前目录下所有的 .jpg 文件,对每个文件进行压缩,并将压缩后的文件命名为原文件名加上 compressed 后缀。例如:
hxstrive@g450:~/workspace$ for file in *.jpg; do convert "$file" -quality 60 "${file%jpg}-compressed.jpg"; done hxstrive@g450:~/workspace$ ll total 628 drwxrwxr-x 2 hxstrive hxstrive 4096 Apr 18 02:50 ./ drwxr-x--- 12 hxstrive hxstrive 4096 Apr 18 02:45 ../ -rw-rw-r-- 1 hxstrive hxstrive 102084 Apr 18 02:50 example1.-compressed.jpg -rw-r--r-- 1 hxstrive hxstrive 120673 Apr 18 02:41 example1.jpg -rw-rw-r-- 1 hxstrive hxstrive 102077 Apr 18 02:50 example2.-compressed.jpg -rw-rw-r-- 1 hxstrive hxstrive 102084 Apr 18 02:46 example2.jpg -rw-rw-r-- 1 hxstrive hxstrive 102077 Apr 18 02:50 example3.-compressed.jpg -rw-rw-r-- 1 hxstrive hxstrive 102084 Apr 18 02:49 example3.jpg
jpegoptim 是专门针对 JPEG 格式图片的优化工具,它能够在保证图片质量的前提下,有效减小 JPEG 图片的文件大小。使用以下命令进行安装:
sudo apt install jpegoptim
jpegoptim 使用起来非常简单,直接指定要压缩的 JPEG 图片文件即可。例如,压缩 example.jpg 文件:
jpegoptim example.jpg
默认情况下,jpegoptim 会在原文件基础上进行压缩,覆盖原文件。例如:
hxstrive@g450:~/workspace$ jpegoptim example1.jpg example1.jpg 1675x852 24bit N JFIF [OK] 120673 --> 111114 bytes (7.92%), optimized.
如果希望保留原文件,可以使用 --dest 选项(指定优化文件的目标目录,默认为覆盖原始文件),命令如下:
hxstrive@g450:~/workspace$ jpegoptim --size=20 --dest=bak example1.jpg example1.jpg 1675x852 24bit N JFIF [OK] 50673 --> 20790 bytes (58.97%), optimized. hxstrive@g450:~/workspace$ ll bak/ total 32 drwxrwxr-x 2 hxstrive hxstrive 4096 Apr 18 03:11 ./ drwxrwxr-x 3 hxstrive hxstrive 4096 Apr 18 03:06 ../ -rw-r--r-- 1 hxstrive hxstrive 20790 Apr 18 03:11 example1.jpg
可以看见,将优化后的图片存放在 bak/ 目录。
批量处理时,可以直接使用通配符,比如压缩当前目录下所有的 JPEG 图片:
jpegoptim --size=50 *.jpg
通过 --size 参数尝试将文件优化为给定大小(禁用无损优化模式)。目标大小可指定为千字节(1 - n)或百分比(1% - 99%)。例如:
hxstrive@g450:~/workspace$ jpegoptim --size=50 *.jpg example1.jpg 1675x852 24bit N JFIF [OK] 111114 --> 50673 bytes (54.40%), optimized. example2.jpg 1675x852 24bit N JFIF [OK] 102084 --> 66726 bytes (34.64%), optimized. example3.jpg 1675x852 24bit N JFIF [OK] 102084 --> 66726 bytes (34.64%), optimized.
pngquant 是一款用于压缩 PNG 图片的工具,它可以将 PNG 图片转换为更高效的 8 位颜色格式,同时保持较好的视觉效果。安装命令如下:
sudo apt install pngquant
pngquant 的使用方式也很直观。例如,将 example.png 压缩并输出为 example_compressed.png,可以使用以下命令:
pngquant 256 example1.png -o example1_compressed.png
这里的 256 表示将 PNG 图片转换为 256 色的 8 位颜色格式,-o 选项指定输出文件名。例如:
hxstrive@g450:~/workspace$ pngquant 256 example1.png -o example1_compressed.png hxstrive@g450:~/workspace$ ll total 4100 drwxrwxr-x 3 hxstrive hxstrive 4096 Apr 18 03:18 ./ drwxr-x--- 12 hxstrive hxstrive 4096 Apr 18 02:45 ../ drwxrwxr-x 2 hxstrive hxstrive 4096 Apr 18 03:11 bak/ -rw-rw-r-- 1 hxstrive hxstrive 607918 Apr 18 03:18 example1_compressed.png -rw-r--r-- 1 hxstrive hxstrive 1191410 Apr 18 03:15 example1.png -rw-r--r-- 1 hxstrive hxstrive 1191410 Apr 18 03:15 example2.png -rw-r--r-- 1 hxstrive hxstrive 1191410 Apr 18 03:15 example3.png
批量处理 PNG 图片时,可以使用如下命令:
for file in *.png; do pngquant 256 "$file" -o "${file%png}compressed.png"; done
该命令会对当前目录下所有的 PNG 图片进行压缩处理。例如:
hxstrive@g450:~/workspace$ for file in *.png; do pngquant 256 "$file" -o "${file%png}compressed.png"; done hxstrive@g450:~/workspace$ ll total 5292 drwxrwxr-x 3 hxstrive hxstrive 4096 Apr 18 03:18 ./ drwxr-x--- 12 hxstrive hxstrive 4096 Apr 18 02:45 ../ drwxrwxr-x 2 hxstrive hxstrive 4096 Apr 18 03:11 bak/ -rw-rw-r-- 1 hxstrive hxstrive 607918 Apr 18 03:18 example1.compressed.png -rw-r--r-- 1 hxstrive hxstrive 1191410 Apr 18 03:15 example1.png -rw-rw-r-- 1 hxstrive hxstrive 607918 Apr 18 03:18 example2.compressed.png -rw-r--r-- 1 hxstrive hxstrive 1191410 Apr 18 03:15 example2.png -rw-rw-r-- 1 hxstrive hxstrive 607918 Apr 18 03:18 example3.compressed.png -rw-r--r-- 1 hxstrive hxstrive 1191410 Apr 18 03:15 example3.png
通过以上介绍,相信你已经掌握了在 Ubuntu22 系统中使用命令行压缩图片的方法。无论是 ImageMagick 的多功能处理,还是 jpegoptim、pngquant 的针对性优化,都能满足你在不同场景下的图片压缩需求。下次遇到图片压缩任务时,不妨尝试使用这些命令行工具,体验高效处理图片的乐趣吧!
📢重要提示:在使用上述工具时,推荐将图片先备份,避免操作失误导致图片损坏。