2014年9月7日日曜日

jpgのロスレス圧縮を行う

前回のpngのロスレス圧縮を行うからの続きで、
今度はjpgの圧縮を行いたいと思います。

jpgの圧縮にはjpegoptimを使えば良いそうなので、
こちらを試したいと思います+(0゚・∀・) + ワクテカ +

まずはインストールを行います。
yum install jpegoptim
Loaded plugins: aliases, changelog, downloadonly, fastestmirror, kabi, presto, priorities, security, tmprepo, verify, versionlock
Loading support for CentOS kernel ABI
You need to be root to perform this command.
$ sudo yum install jpegoptim
Loaded plugins: aliases, changelog, downloadonly, fastestmirror, kabi, presto, priorities, security, tmprepo, verify, versionlock
Loading support for CentOS kernel ABI
Loading mirror speeds from cached hostfile
epel/metalink                                                                                                                                               | 4.0 kB     00:00
 * base: ftp.iij.ad.jp
 * centosplus: ftp.iij.ad.jp
 * elrepo: ftp.ne.jp
 * epel: ftp.jaist.ac.jp
 * extras: ftp.iij.ad.jp
 * rpmforge: mirror.fairway.ne.jp
 * updates: ftp.iij.ad.jp
base                                                                                                                                                        | 3.7 kB     00:00
centosplus                                                                                                                                                  | 3.4 kB     00:00
elrepo                                                                                                                                                      | 2.9 kB     00:00
epel                                                                                                                                                        | 4.4 kB     00:00
epel/primary_db                                                                                                                                             | 6.3 MB     00:01
extras                                                                                                                                                      | 3.3 kB     00:00
rpmforge                                                                                                                                                    | 1.9 kB     00:00
Not using downloaded repomd.xml because it is older than what we have:
  Current   : Fri Jul 11 10:46:59 2014
  Downloaded: Wed Jul 25 10:43:04 2012
updates                                                                                                                                                     | 3.4 kB     00:00
195 packages excluded due to repository priority protections
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package jpegoptim.x86_64 0:1.4.1-1.el6 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

===================================================================================================================================================================================
 Package                                     Arch                                     Version                                         Repository                              Size
===================================================================================================================================================================================
Installing:
 jpegoptim                                   x86_64                                   1.4.1-1.el6                                     epel                                    26 k

Transaction Summary
===================================================================================================================================================================================
Install       1 Package(s)

Total download size: 26 k
Installed size: 52 k
Is this ok [y/N]: y
Downloading Packages:
Setting up and reading Presto delta metadata
Processing delta metadata
Package(s) data still to download: 26 k
jpegoptim-1.4.1-1.el6.x86_64.rpm                                                                                                                            |  26 kB     00:00
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing : jpegoptim-1.4.1-1.el6.x86_64                                                                                                                                    1/1
  Verifying  : jpegoptim-1.4.1-1.el6.x86_64                                                                                                                                    1/1

Installed:
  jpegoptim.x86_64 0:1.4.1-1.el6

Complete!
バージョンの確認
jpegoptim -V
jpegoptim v1.4.1  x86_64-redhat-linux-gnu
Copyright (c) 1996-2014  Timo Kokkonen.

libjpeg version: 6b  27-Mar-1998
Copyright (C) 1991-2010 Thomas G. Lane, Guido Vollbeding
Copyright (C) 1999-2006 MIYASAKA Masaru
Copyright (C) 2009 Pierre Ossman for Cendio AB
Copyright (C) 2009-2012 D. R. Commander
Copyright (C) 2009-2011 Nokia Corporation and/or its subsidiary(-ies)
ヘルプの確認
jpegoptim -h
jpegoptim v1.4.1  Copyright (c) Timo Kokkonen, 1996-2014.
Usage: jpegoptim [options] 

  -d, --dest=
                    specify alternative destination directory for
                    optimized files (default is to overwrite originals)
  -f, --force       force optimization
  -h, --help        display this help and exit
  -m, --max=
                    set maximum image quality factor (disables lossless
                    optimization mode, which is by default on)
                    Valid quality values: 0 - 100
  -n, --noaction    don't really optimize files, just print results
  -S, --size=
                    Try to optimize file to given size (disables lossless
                    optimization mode). Target size is specified either in
                    kilo bytes (1 - n) or as percentage (1% - 99%)
  -T, --threshold=
                    keep old file if the gain is below a threshold (%)
  -b, --csv         print progress info in CSV format
  -o, --overwrite   overwrite target file even if it exists
  -p, --preserve    preserve file timestamps
  -q, --quiet       quiet mode
  -t, --totals      print totals after processing all files
  -v, --verbose     enable verbose mode (positively chatty)
  -V, --version     print program version

  -s, --strip-all   strip all markers from output file
  --strip-none      do not strip any markers
  --strip-com       strip Comment markers from output file
  --strip-exif      strip Exif markers from output file
  --strip-iptc      strip IPTC/Photoshop (APP13) markers from output file
  --strip-icc       strip ICC profile markers from output file
  --strip-xmp       strip XMP markers markers from output file

  --all-normal      force all output files to be non-progressive
  --all-progressive force all output files to be progressive
  --stdout          send output to standard output (instead of a file)
  --stdin           read input from standard input (instead of a file)
簡単な使い方は次のような感じです

画像に含まれるExif情報などを全て削除する
--strip-allを付けて実行します。
jpegoptim --strip-all ファイル名
個別に削除したい場合は次のようにします。

・コメントのみ
jpegoptim --strip-com ファイル名
・Exifのみ
jpegoptim --strip-exif ファイル名
・IPTCのみ
jpegoptim --strip-iptc ファイル名
・ICCプロファイルのみ
jpegoptim --strip-icc ファイル名
・XMPのみ
jpegoptim --strip-xmp ファイル名
データを削除しない場合は--strip-noneを付ける。
jpegoptim --strip-none ファイル名
品質を指定して圧縮

品質(クオリティ)を指定して画像を圧縮します。
<quality>には0から100の値を入れる。100が最大圧縮率になる。
jpegoptim -m ファイル名
サイズを指定して圧縮

画像をKB単位で指定して、そのサイズまで圧縮。
指定したサイズによって画質が劣化する。
数字の後に%を付けることで圧縮率を指定することもできるそうです。
jpegoptim -Sサイズ ファイル名
保存ディレクトリを指定
保存場所を指定することで上書きを防ぐことができます。
jpegoptim --dest=ディレクトリパス ファイル名
処理結果を出力しない
jpegoptim -q ファイル名
同名ファイルが存在しても上書き
jpegoptim -o ファイル名

圧縮率を100%で指定したディレクトリへ圧縮ファイルを出力する場合
jpegoptim -m100 --dest=/tmp/test/ /tmp/test.jpg
/tmp/test.jpg 190x60 24bit N Exiff XMP Adobe  [OK] 22571 --> 16274 bytes (27.90%), optimized.
27.90%圧縮されました( ´∀`)bグッ!

圧縮率を100%で、Exif情報などを削除して指定したディレクトリへ圧縮ファイルを出力する場合
jpegoptim --strip-all -m100 --dest=/tmp/test/ /tmp/test.jpg
/tmp/test.jpg 190x60 24bit N Exiff XMP Adobe  [OK] 22571 --> 15369 bytes (31.91%), optimized.
同じファイルで31.91%圧縮されましたъ(゚Д゚)グッジョブ!!

指定されたディレクトリ配下に含まれるjpg,jpeg画像を圧縮する。
また、圧縮したファイルを指定したディレクトリに出力する
find /tmp/ -name "*.jpg" -o -name "*.jpeg" | xargs jpegoptim --strip-all -m100 --dest=/tmp/test/ {}
以上です(`・ω・´)ゞビシッ!!

参考URL

0 件のコメント:

コメントを投稿