質問掲示板

CGIなどのの質問を受付ます。
現在SPAM対策の為、一部ホストアドレスを規制中。

新規発言一覧最新記事過去一覧 | 検索HOME
No.1148  Re[2]:アニメーションGIFのチェックのルーチンその後
発言者: moon★
発言日: 2008 07/22 11:03
発言元: p3170-ipbf706hodogaya.kanagawa.ocn.ne.jp
 
以下修正してみたもの。
テストではそこそこ早かったが・・・


$imgfile = 'hoge.gif';
$outimgfile = 'out.gif';
$tail = '.gif';

$ws=200;
$hs=200;

if(&gif_check($tail,$imgfile)){
    &anigif_resize($imgfile,$outimgfile,$ws,$hs);
}


#アニメーションGIFのチェック
sub gif_check {

    my ($tail,$imgfile) =@_;

    if( $tail eq ".gif" ){
        open(IN,"identify $imgfile |");
        @output = <IN>;
        close(IN);
        if ( @output > 1 ){
            return(1);
        }
    }
}
#アニメーションGIFのリサイズ
sub anigif_resize{
    my($imgfile,$outimgfile,$tn_w,$tn_h)=@_;
    my $option=" -coalesce -resize " .$tn_w .'x' .$tn_h ." -deconstruct";

    # ImageMagickのconvertコマンド呼び出し
    system ("convert $imgfile $option $outimgfile");

}


直したところ
・余計な変数などは使わないようにした
・$option のところの サイズ指定にスペースが入っているとエラーになるので、それを修正。

ImageMagickを使う場合、ImageMagickでの処理時間があるので、これ以上は焼くならないと思います。
とりあえずエラーが出ないように作って、だめなら他の方法(他のモジュールや自作するなど)を考えるしかないでしょう。

▼関連発言

1145:アニメーションGIFのチェックのルーチンその後 [うしわか] 07/21
 └1146:Re:アニメーションGIFのチェックのルーチン [うしわか] 07/21
  └1148:Re[2]:アニメーションGIFのチェックのルー [moon★] 07/22
   └1149:Re[3]:アニメーションGIFのチェックのル [うしわか] 07/22 <

Pass 保存

CGIROOM