ImageMagick (PerlMagick) でGIFアニメーションをJPGに

ImageMagick でGIFアニメーションをJPGなどの単一イメージフォーマットに変換すると、アニメーションのコマ数分だけファイルが生成される。
これは単にサムネイルを作りたいときには迷惑な仕様だ。
以下のようにすることで任意のコマだけ書き出すことができる。

use Image::Magick;

my $upload_filename = 'my_uploaded_image.gif';

my $thumb_filename = $upload_filename;
$thumb_filename =~ s/(?<=?.)[^?.]+/jpg/;

my $image = new Image::Magick;
$image->Read($upload_filename);
$image->[0]->Write($thumb_filename); #$image->[コマ番号-1]->Write…とする

Leave a Reply