Linux有问必答:如何在命令行下压缩JPEG图像

简介:

Linux有问必答:如何在命令行下压缩JPEG图像

问题: 我有许多数码照相机拍出来的照片。我想在上传到Dropbox之前,优化和压缩下JPEG图片。有没有什么简单的方法压缩JPEG图片并不损耗他们的质量?

如今拍照设备(如智能手机、数码相机)拍出来的图片分辨率越来越大。甚至3630万像素的Nikon D800已经冲入市场,并且这个趋势根本停不下来。如今的拍照设备不断地提高着照片分辨率,使得我们不得不压缩后,再上传到有储存限制、带宽限制的云。

事实上,这里有一个非常简单的方法压缩JPEG图像。一个叫“jpegoptim”命令行工具可以帮助你“无损”美化JPEG图像,让你可以压缩JPEG图片而不至于牺牲他们的质量。万一你的存储空间和带宽预算真的很少,jpegoptim也支持“有损”压缩来调整图像大小。

如果要压缩PNG图像,参考这个指南的例子。

安装jpegoptim

Ubuntu, Debian 或 Linux Mint:

 
 
  1. $ sudo apt-get install jpegoptim

Fedora:

 
 
  1. $ sudo yum install jpegoptim

CentOS/RHEL安装,先开启EPEL库,然后运行下列命令:

 
 
  1. $ sudo yum install jpegoptim

无损压缩jpeg图像

为了无损地压缩一副JPG图片,使用:

 
 
  1. $ jpegoptim photo.jpg
  2. photo.jpg 2048x1536 24bit N ICC JFIF [OK] 882178 --> 821064 bytes (6.93%), optimized.

注意,原始图像会被压缩后图像覆盖。

如果jpegoptim不能无损美化图像,将不会覆盖它:

 
 
  1. $ jpegoptim -v photo.jpg
  2. photo.jpg 2048x1536 24bit N ICC JFIF [OK] 821064 --> 821064 bytes (0.00%), skipped.

如果你想保护原始图片,使用"-d"参数指明保存目录

 
 
  1. $ jpegoptim -d ./compressed photo.jpg

这样,压缩的图片将会保存在./compressed目录(以同样的输入文件名)

如果你想要保护文件的创建修改时间,使用"-p"参数。这样压缩后的图片会得到与原始图片相同的日期时间。

 
 
  1. $ jpegoptim -d ./compressed -p photo.jpg

如果你只是想看看无损压缩率而不是真的想压缩它们,使用"-n"参数来模拟压缩,然后它会显示出压缩率。

 
 
  1. $ jpegoptim -n photo.jpg

有损压缩JPG图像

万一你真的需要要保存在云空间上,你还可以使用有损压缩JPG图片。

这种情况下,使用"-m<质量>"选项,质量数范围0到100。(0是最好质量,100是最差质量)

例如,用50%质量压缩图片:

 
 
  1. $ jpegoptim -m50 photo.jpg
  2. photo.jpg 2048x1536 24bit N ICC JFIF [OK] 882178 --> 301780 bytes (65.79%), optimized.

在牺牲质量的基础上,将会得到一个更小的图片。

一次压缩多张JPEG图像

最常见的情况是需要压缩一个目录下的多张JPEG图像文件。为了应付这种情况,你可以使用接下来的脚本。

 
 
  1. #!/bin/sh
  2. # 压缩当前目录下所有*.jpg文件
  3. # 保存在./compressed目录
  4. # 并拥有与原始文件同样的修改日期
  5. for i in *.jpg; do jpegoptim -d ./compressed -p "$i"; done

原文发布时间:2015-05-13

本文来自云栖合作伙伴“linux中国”
目录
相关文章
|
3天前
|
Shell Linux
【Linux】Bash支持各种指令选项的原理:命令行参数
【Linux】Bash支持各种指令选项的原理:命令行参数
|
6天前
|
监控 Linux 开发者
【专栏】如何在 Linux 命令行中终止进程?
【4月更文挑战第28天】在Linux系统管理中,终止不响应或资源消耗大的进程至关重要。本文介绍了如何查找、终止和监控进程。使用`ps`和`grep`组合查找特定进程,或通过`pgrep`获取PID。使用`kill`命令(默认发送TERM信号)终止进程,如需强制终止,可使用`kill -9`发送`SIGKILL`信号。监控进程可借助`ps`、`top`、`htop`及`watch`命令。理解这些技能将有助于更有效地管理Linux进程。
|
6天前
|
Ubuntu 安全 Linux
【Linux命令行艺术】1. 初见命令行
【Linux命令行艺术】1. 初见命令行
|
15天前
|
监控 前端开发 JavaScript
《Linux 简易速速上手小册》第2章: 命令行的艺术(2024 最新版)
《Linux 简易速速上手小册》第2章: 命令行的艺术(2024 最新版)
23 1
|
17天前
|
IDE Unix Linux
Linux系统简介、安装Linux系统、Linux系统目录结构、Linux命令行
Linux系统简介、安装Linux系统、Linux系统目录结构、Linux命令行
|
24天前
|
Linux
Linux命令行快捷键
Linux命令行快捷键
|
25天前
|
Linux
linux 压缩包管理压缩解压查看 追加
linux 压缩包管理压缩解压查看 追加
10 0
|
2月前
|
Linux
linux命令行打包、压缩及解压缩
linux命令行打包、压缩及解压缩
10 0
|
2月前
|
Shell Linux
【Linux】详谈命令行参数&&环境变量
【Linux】详谈命令行参数&&环境变量
|
2月前
|
Linux
linux压缩与解压缩
在Linux中,常用的压缩命令有gzip/gunzip (用于单个文件),bzip2/bunzip2,以及tar (支持gzip, bzip2, xz)。tar还可用于打包多个文件或目录。zip/unzip适用于ZIP格式。使用时注意选项如-c, -z, -j, -J, -x, -v, -f。根据需求选择合适命令,执行时确保目标目录有足够空间和正确权限。
26 3