特定フォルダ内の画像をまとめて最適化する、の巻

暑苦しい土曜の夜、Twitterを眺めていたら「画像を最適化したいけど、うん千枚あって…」みたいなやりとりが目に止まりました。画像の最適化で楽をしたい場合は、「Smush.it™」とか「punypng」といったオンラインのサービスを使わせていただくのが手っ取り早い方法ですが、何千枚ともなると現実的ではないですね(笑)。

imgopt

そこでちょっと調べてみたらありました。コマンドラインですが、特定フォルダ内の画像(JPGかPNG)を一発で最適化してしまう「imgopt」なる素敵ツールがあるじゃないですか。ということで、簡単ですがインストールして使うまでをまとめておきます。

(追記: 2011.07.03)なんか大阪にいる心優しい人が教えてくれましたよ、OS XのGUI版「imageoptim」。以下の準備が面倒な人はこれですな。Windowsな人はこの辺になんかあるかも。

※ただし、OS Xのやり方なのでWindowsな方はどうにかしてください(笑)。

imgoptのインスコローリング

まずは「imgopt」のソースファイルをダウンロードしましょう。

とりあえずtar.gzを解凍して、適当なディレクトリに置いときます。ここからはターミナルの操作になりますので、配布ファイルのREADMEに書かれてるとおりにすれば大丈夫です。

解凍した「 imgopt」のディレクトリに移動して以下のコマンドを入力。

cp imgopt /usr/local/bin/ && chmod a+x /usr/local/bin/imgopt

なんですが、たぶん「パーミッションが…」とか言われると思うので、その時は「sudo」コマンドを使ってやりましょう。

sudo cp imgopt /usr/local/bin/ && chmod a+x /usr/local/bin/imgopt

すると「/usr/local/bin/imgopt」ができて準備オッケイ。次に同じディレクトリにある「jfifremove.c」をコンパイルしてインストールしましょう。

gcc -o jfifremove jfifremove.c

これで「jfifremove」ができるので「/usr/local/bin」に移しちゃいます。

mv jfifremove /usr/local/bin/

うまくいかなかったら、例のsudoつきで。

sudo mv jfifremove /usr/local/bin/

ここまでやれば、以下のコマンドを実行するだけで最適化できるんじゃないかと(※環境は人によって違うので、うまくいかない場合はREADMEを読んだり配布先のコメント欄を見てくださいね)。

imgoptで最適化するコマンド

特定ディレクトリ内の画像を一気に最適化したい場合は、ターミナルから以下のように入力すればオッケイ。

imgopt *

「*」はワイルドカードなので全部。

imgopt *.png(pngの場合)
imgopt *.jpg(jpgの場合)

特定のファイル形式だけまとめるならこうですね。簡単です。

あれがねえ、これがねえ、と言われるのが気になるなら

READMEに書かれてるインストールの方法の2番までやればおそらく上記のようにして使えるんですけど、実行中に「pngoutがねえ、advpngがねえ、optipngがねえ」とか言われるはずです(笑)。

これらをインストールするのも同じようにソースファイルをそれぞれダウンロードしてインストールします。pngoutはこちら、advpngは「AdvanceCOMP」の中、optipngはこちらでそれぞれ公開されています。

pngoutのインストール

pngoutはすでにバイナリの形で配布されているので、単に「/usr/local/bin」にコピーすれば良いでしょう。

cp pngout /usr/local/bin/ && chmod a+x /usr/local/bin/pngout

例によって、うまくいかない場合は「sudo」つけてください。

advpngのインストール

advpngはコンパイルから始めないといけません。ターミナルで解凍したディレクトリに移動して、

./configure

ってやるとツラツラと画面が流れていきます。終わったら、

make
make install

これでまた「/usr/local/bin」にインストールされます。パーミッションが…っていわれたら「sudo」つけて実行してください。

optipngのインストール

こちらも同様にmakeしてインストールします。解凍したディレクトリ内にある「src」ディレクトリに移動します。

cd optipng-0.5/src

で、以下を実行。

make -f scripts/gcc.mak

するとsrcの中に「optipng」ができるので、それを「/usr/local/bin」にコピーする、と。

cp optipng /usr/local/bin/ && chmod a+x /usr/local/bin/optipng

おそらくこんな感じで大丈夫でしょう。

結果はこんな感じです

一応結果を載せておきますね。

optpng-result

左がやる前、右やった後。ちゃんと減ってますね。

さ、レッツまとめて最適化(笑)。

#こういうのはサーバ側に入れておくと楽ちんですね。

Tags: , , ,

   

Comments are closed.


Performance Optimization WordPress Plugins by W3 EDGE