画像ファイルの扱いを便利にしようとプラグインを探していましたが、どうやら求めていた物が見付かったようです。
「EWWW Image Optimizer」という画像最適化プラグインです。
おおむね画像の取り扱いについて、やりたい事がこれ一つで出来てしまいそうです。
- 画質劣化の少ない画像処理
- アップロード時の自動リサイズ処理
- コメント、Exif情報などのメタ情報の削除
- 画像の最適化(Optimize)処理?
設定画面の様子です。「Lossless」の文字が見えます。\(^o^)/
さらに、すでにアップロードされている画像についても、これらの処理を実行する事が可能になっています。
かなり親切設計だと思います。
画質が気になるので、内部で何をやっているのか調べてみました。
以下jpegファイルを扱う場合です。
画像のアップロード時のリサイズ処理や「Optimize」処理を行う際、外部コマンドを実行している様です。
下は「Optimize」を実行した際のプロセスの様子。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
root 12258 0.0 0.4 500740 18188 ? Ss 10月09 0:31 /usr/sbin/httpd -DFOREGROUND apache 12564 1.9 1.5 548844 62804 ? S 21:31 0:37 \_ /usr/sbin/httpd -DFOREGROUND apache 12754 2.0 1.8 572056 76784 ? S 21:39 0:29 \_ /usr/sbin/httpd -DFOREGROUND apache 12757 1.7 1.8 570236 75508 ? S 21:39 0:25 \_ /usr/sbin/httpd -DFOREGROUND apache 12780 1.6 1.8 571532 74248 ? S 21:40 0:22 \_ /usr/sbin/httpd -DFOREGROUND apache 12885 1.5 1.9 573016 77644 ? S 21:44 0:17 \_ /usr/sbin/httpd -DFOREGROUND apache 12886 1.7 1.9 574592 79724 ? S 21:44 0:19 \_ /usr/sbin/httpd -DFOREGROUND apache 13498 43.0 0.6 28604 27920 ? RN 22:03 0:00 | \_ /var/www/www_hogehoge-k_com/wp-content/ewww/jpegtran -copy all -optimize -progressive -outfile /var/www/www_hogehoge-k_com/wp-content/uploads/2016/10/IMGP1506.jpg.prog /var/www/www_hogehoge-k_com/wp-content/uploads/2016/10/IMGP1506.jpg apache 12887 1.7 2.1 934588 86960 ? S 21:44 0:19 \_ /usr/sbin/httpd -DFOREGROUND apache 12888 1.6 1.9 572580 77232 ? S 21:44 0:18 \_ /usr/sbin/httpd -DFOREGROUND apache 12889 1.5 1.4 547428 59416 ? S 21:44 0:18 \_ /usr/sbin/httpd -DFOREGROUND apache 12890 1.6 2.0 920756 81568 ? S 21:44 0:18 \_ /usr/sbin/httpd -DFOREGROUND [hogehoge@web7 ~]$ |
jpegtranコマンドがhttpd(Apache)から起動されているのが解ります。
コマンドの実行ファイルはプラグインのディレクトリ内にあり、プラグインに同梱されていたものと思います。
これは何者でしょうか?
1 2 3 4 |
[hogehoge@web7 ~]$ [hogehoge@web7 ~]$ file /var/www/www_hogehoge-k_com/wp-content/ewww/jpegtran /var/www/www_hogehoge-k_com/wp-content/ewww/jpegtran: ELF 32-bit LSB executable, Intel 80386, version 1 (GNU/Linux), statically linked, for GNU/Linux 2.6.18, BuildID[sha1]=9b9dea81c65143fca022fa30eb00a781acb549a5, not stripped [hogehoge@web7 ~]$ |
しっかりIntelのバイナリ実行ファイルでした。32bitの実行ファイル、しっかり静的リンクされています。ストリップはしなかったのね…
EWWW Image Optimizerが言う「Optimize」とは、jpegtranコマンドで-optimize -progressiveオプションを付けて生成したファイル、という事の様です。
「メタ情報(コメントやExif)の削除」の項目にチェックを付けておくと、-copy all から -copy none にオプションを変える様です。これでメタ情報を削除している様です。
jpegtranコマンドはlibjpeg(C言語のjepgイメージを扱うライブラリ)の機能をコマンドラインから扱えるようにしたものです。
多くのLinuxディストリビューションで標準的にインストールされ、利用する事が出来ます。CentOS7でもインストールされています。
CentOS7標準の物との違いを調べてみました。
EWWW Image Optimizer付属のjpegtran
1 2 3 4 |
[hogehoge@web7 ~]$ /var/www/www_hogehoge-k_com/wp-content/ewww/jpegtran -v Independent JPEG Group's JPEGTRAN, version 9b 17-Jan-2016 Copyright (C) 2016, Thomas G. Lane, Guido Vollbeding ^C |
CentOS7付属のjpegtran
1 2 3 4 5 6 7 8 9 |
[hogehoge@web7 ~]$ jpegtran -v libjpeg-turbo version 1.2.90 (build 20140610) Copyright (C) 1991-2012 Thomas G. Lane, Guido Vollbeding Copyright (C) 1999-2006 MIYASAKA Masaru Copyright (C) 2009 Pierre Ossman for Cendio AB Copyright (C) 2009-2013 D. R. Commander Copyright (C) 2009-2011 Nokia Corporation and/or its subsidiary(-ies) Emulating The Independent JPEG Group's libjpeg, version 6b 27-Mar-1998 |
EWWW Image Optimizer付属の物はIndependent JPEG Groupが開発するオリジナルのlibjpeg。
CentOS7付属の方はlibjpeg-turboというlibjpegとAPIレベルで互換性を保ちながら、画像処理をCPUの拡張命令を使って高速に処理出来る様にした派生バージョンの様です。
※開発者に日本人の名前も見えますね。なんか嬉しい。
画質的にはどちらが有利なのか解りませんが、オリジナルのlibjpegは今年出たばかりの最新版をしっかり使っている様です。好印象です。
- Independent JPEG Group
http://www.ijg.org/
- libjpeg-turbo
http://www.libjpeg-turbo.org/
ここまでjpegファイルの場合で見てみましたが、gifやpngファイル用だと思われる他のコマンドも含まれていました。
1 2 3 4 5 6 |
[hogehoge@web7 ~]$ ls -l /var/www/www_hogehoge-k_com/wp-content/ewww/ 合計 2188 -rwxr-xr-x 1 apache apache 749937 10月 10 21:33 gifsicle -rwxr-xr-x 1 apache apache 739239 10月 10 21:33 jpegtran -rwxr-xr-x 1 apache apache 742077 10月 10 21:33 optipng [hogehoge@web7 ~]$ |
gifファイル用にgifsicleコマンド、pngファイル用にoptipngコマンドを用いる様です。
こんな感じで中で何をやっているのか見てきましたが、GUIの使い勝手もなかなか良いです。
欲しくなる機能は大抵揃っているんじゃないでしょうか。
とても良いプラグインだと思います。
以降はこのプラグインを使っていこうと思います。
Leave A Comment