質問掲示板

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

新規発言一覧最新記事過去一覧 | 検索HOME

スレッド

└◇1148:
Re[2]:アニメーションGIFのチェックのルーチンその後 [moon★] 07/22 11:03

 └◇1149:Re[3]:アニメーションGIFのチェックのルーチンその後 [うしわか] 07/22 <


1148● Re[2]:アニメーションGIFのチェックのルーチンその後[ moon★ ] 2008 07/22 11:03
以下修正してみたもの。
テストではそこそこ早かったが・・・


$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での処理時間があるので、これ以上は焼くならないと思います。
とりあえずエラーが出ないように作って、だめなら他の方法(他のモジュールや自作するなど)を考えるしかないでしょう。
スレッド一覧


1149● Re[3]:アニメーションGIFのチェックのルーチンその後[ うしわか ] 2008 07/22 14:13
おお〜おかげで目に見えて処理が軽くなったようです。
感謝m(_ _)m
スレッド一覧

CGIROOM