Linux系统下在命令行中压缩JPEG图像的方法

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

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

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

安装jpegoptim

Ubuntu, Debian 或 Linux Mint:

代码如下:

$ sudo apt-get install jpegoptim

Fedora:

代码如下:

$ sudo yum install jpegoptim

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

代码如下:

$ sudo yum install jpegoptim

无损压缩jpeg图像

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

代码如下:

$ jpegoptim photo.jpg

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

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

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

代码如下:

$ jpegoptim -v photo.jpg

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

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

代码如下:

$ jpegoptim -d ./compressed photo.jpg

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

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

代码如下:

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

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

代码如下:

$ jpegoptim -n photo.jpg

有损压缩JPG图像

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

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

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

代码如下:

$ jpegoptim -m50 photo.jpg

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

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



一次压缩多张JPEG图像

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

代码如下:

#!/bin/sh

# 压缩当前目录下所有*.jpg文件

# 保存在./compressed目录

# 并拥有与原始文件同样的修改日期

for i in *.jpg; do jpegoptim -d ./compressed -p "$i"; done

(0)

相关推荐

  • Ubuntu系统下用命令行快速打开各类型文件的方法(xdg-open)

    在Ubuntu下,通常用命令行打开文本文件,比如用命令gedit、more、cat、vim、less。但当需要打开其他格式文件时,比如pdf、jpg、mp3格式文件,咱们通常做法是进入到文件所在的目录 ...

  • Win8系统下利用命令行实现定时关机的技巧

    有时候我们在wins8系统电脑中下载一些软件,没下载完可是需要出门,不过想着把电脑给设置一下,不要一直开机着,这时候可以设置让电脑定时关机。就像w764位旗舰版那样,虽然网上定时关机的的第三方软件很多 ...

  • Linux系统下中 在命令行中实现Wifi 连接的方法

    无论何时要安装一款新的 Linux 发行系统,一般的建议都是让您通过有线连接来接到互联网的。 这主要的原因有两条:第一,您的无线网卡也许安装的驱动不正确而不能用;第二,如果您是从命令行中来安装系统的, ...

  • Linux系统下wget命令的使用教程

    一.Linux wget简介 wget是linux上的命令行的下载工具.这是一个GPL许可证下的自由软件.Linux wget支持HTTP和FTP协议,支持代理服务器和断点续传功能,能够自动递归远程主 ...

  • Linux系统下apachectl命令使用说明

    linux中的apachectl命令其设计意图是帮助管理员控制Apache httpd后台守护进程的功能.apachectl脚本有两种操作模式.第一,作为简单的httpd的前端程序,设置所有必要的环境 ...

  • Linux系统下修改环境变量PATH路径的三种方法

    电脑中必不可少的就是操作系统。而Linux的发展非常迅速,有赶超微软的趋势。这里介绍Linux的知识,让你学好应用Linux系统。比如要把/etc/apache/bin目录添加到PATH中,方法有三: ...

  • 在Windows系列中的Linux系统下"Which"命令的使用方法介绍

    在Linux下,有一个命令叫做which,它可以在Path中寻找某个命令所在的目录并显示出来。 Linux下: [adam@i ase adam]$ which ls /bin/ls [adam@i ...

  • Linux系统下tar命令的使用技巧总结

    Linux tar 命令是归档或分发文件时的强大武器.GNU tar 归档包可以包含多个文件和目录,还能保留其文件权限,它还支持多种压缩格式.Tar 表示 "Tape Archiver&qu ...

  • Linux系统下pv命令的一些使用技巧小结

    如果你是一个 linux 系统管理员,那么毫无疑问你必须花费大量的工作时间在命令行上:安装和卸载软件,监视系统状态,复制.移动.删除文件,查错,等等.很多时候都是你输入一个命令,然后等待很长时间直到执 ...