YAPC::Asia 2009で大規模画像配信とPerlについて発表しました。
会社のブログの方に資料公開しましたので、
このブログでも紹介です

一部パワポのアニメーション機能使っている部分が抜けていますので 会社ブログの方で公開しているPPTファイルも参照して頂けると幸いです

資料の中で、Image::Magickのベンチマークをしているのですが、その際画像サイズの変更のアルゴリズムについては触れていませんでした。
確かに画質は悪くなりますが、変換のアルゴリズムを変更するとスピードがあがります。
ImageMagickの画像の拡大縮小のアルゴリズムについては以下のページが参考になります。
りゃくえふ » Blog Archive » ImageMagickの画像の縮小

しかし実際、Image::Magickが重たいのは画像loadの時です。
Image::MagickのReadだけと、Imlib2で画像を縮小したときのベンチマークをしてみます。

timethese(
    100 => {
        imagemagick => sub {
            my $img = Image::Magick->new($orig_width, $orig_height);
            my $x = $img->Read($srcfile);
            die "$x" if $x;
        },
        "imlib2" => sub {
            my $im = Image::Imlib2->load( $srcfile );
            my $im2 = $im->create_scaled_image($width, $height);
            $im2->set_quality(85);
            $im2->save('imlib2.jpg');
        }
    }
);

結果は、

Benchmark: timing 100 iterations of imagemagick_load, imlib2...
imagemagick:  3 wallclock secs ( 2.38 usr +  0.05 sys =  2.43 CPU) @ 41.15/s (n=100)
imlib2:  2 wallclock secs ( 2.38 usr +  0.06 sys =  2.44 CPU) @ 40.98/s (n=100)

なんと、ほぼ同じ。
Image::Magickは画像を読み込んだ際に様々な処理を行っているからこのような速度の差になるんでしょうね。

ということで、画像のライブラリは適材適所で選択しませう。

このブログ記事について

このページは、Masahiro Naganoが2009年9月16日 23:17に書いたブログ記事です。

ひとつ前のブログ記事は「子供はハッカー」です。

次のブログ記事は「「Linux-DBシステム構築/運用入門」がすごいの件」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

ウェブページ

OpenID対応しています OpenIDについて
Powered by Movable Type 4.27-ja