JPEGより約40%コンパクト:Google、Web高速化を目指し新画像フォーマット「WebP」を発表 - ITmedia エンタープライズ と,Google が新しい画像フォーマットを発表したようで賑わっていました.A new image format for the Web | WebP | Google Developers を見たところ,各種画像ファイルから WebP へのコンバータとしては,今のところ Linux 向けのコマンドライン版のみが提供されているようですが,折角なので Windows の GUI ラッパーを作成してみました.
- http://cielquis.net/download/Image2WebP-1.0.0.zip (2.16MB)
- http://github.com/clown/Image2WebP (ソースコード)
webpconv の Windows 版はまだ提供されていないようなので,取り合えず cygwin で make する事で手を抜いています(そのため,cygwin1.dll などがわんさか付いています・・・).また,GUI 部分は C# で記述しているので,.NetFramework 2.0 以降のランタイムライブラリが必要となります.
解凍してできたフォルダにある Image2WebP.exe を実行すると以下のようなアイコンが出現するので,このアイコンに変換したい画像ファイルを Drag&Drop します.Drag&Drop したファイルが変換可能な画像ファイルの場合は,元の画像ファイルと同じフォルダに *.webp (同名で拡張子のみ異なる)と言うファイルが生成されます.終了する場合は,右クリックでコンテキストメニューを表示させ,終了を選択します.
変換可能な画像フォーマットは *.bmp, *.jpg (*.jpeg), *.png, *.gif の 4種類のようなので,それ以外のファイルは弾いています(現在は,拡張子だけを見て判別しています).また,フォルダを Drag&Drop した場合は再帰的に展開しています.
勢いで作ってみたのは良いのですが,変換しても(再度 *.png に変換しないと)見る方法がないと言う事実を後から知って脱力してしまいました.本の虫: Dark_Shikari、WebPについて語る みたいな話もありますが,確かに発表するには早すぎたのでは・・・と言う気もします.
尚,cygwin で make していると以下のようなエラーが発生しました.
$ make webpconv g++ -Werror -o webpconv webpconv.o libwebp.o ../leptonlib-1.066/lib/nodebug/liblept.a -ltiff -ljpeg -lpng -lgif -lz -lm -lvpx -lpthread webpconv.o:webpconv.c:(.text+0x59e): undefined reference to `_pixReadWebP' webpconv.o:webpconv.c:(.text+0x89e): undefined reference to `_pixWriteWebP' webpconv.o:webpconv.c:(.text+0x8fa): undefined reference to `_pixWriteWebPwithTargetPSNR' collect2: ld returned 1 exit status make: *** [webpconv] Error 1
webp/leptonlib-1.066/src/webpio.c が make の対象になっていないため,リンク時に定義が見つからないと言うエラーが発生していたようです.今回は,手動で適当に makefile を修正して通しました.