暑苦しい土曜の夜、Twitterを眺めていたら「画像を最適化したいけど、うん千枚あって…」みたいなやりとりが目に止まりました。画像の最適化で楽をしたい場合は、「Smush.it™」とか「punypng」といったオンラインのサービスを使わせていただくのが手っ取り早い方法ですが、何千枚ともなると現実的ではないですね(笑)。
そこでちょっと調べてみたらありました。コマンドラインですが、特定フォルダ内の画像(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
おそらくこんな感じで大丈夫でしょう。
結果はこんな感じです
一応結果を載せておきますね。
左がやる前、右やった後。ちゃんと減ってますね。
さ、レッツまとめて最適化(笑)。
#こういうのはサーバ側に入れておくと楽ちんですね。
Tags: optimization, performance, softwares, tips