[PHP-users 29907] Re: TIFF画像の変換

日本情報電信)兵頭 hyodo @ japanitc.com
2006年 7月 28日 (金) 17:31:13 JST


兵頭です。

画質を落とすことでファイルサイズの節約ができました。
みなさんありがとうございます。
ただ、現在新たな問題を抱えてしまいました。
処理としては、特定のフォルダの中身のTIFのファイルを全て
変換しようとしているのですが、perlをコールするとメモリを異常に消費して
3つの画像ファイルの変換なのに5分以上かかりタイムアウトになってしまいます。
perlをコマンドプロンプトより実行した場合は、メモリ消費もそれほどなく処理も10秒ほどで
終了します。

私のプログラムに問題があるのでしょうか?
**********PHP側*****************************
〜省略〜

$dir=dir(画像ファイルのフォルダ名);
while( ($dir_file = $dir->read() ) !== FALSE){

    //ファイルの拡張子がTIFのみ実行
    if(mb_ereg('.tif$|.tiff$',$dir_file)){

        //元画像(TIFFファイル)
        $inimage=$dir_file;

        //変換後ファイル(ファイル名はそのままでTEMPフォルダに保存する)
        $outimage='./temp/'.ereg_replace('.tif$|.tiff$','.jpg',$dir_file);

        //TIFF→JPG変換(外部プログラム呼び出しPerl)
        exec('imageconvert.pl $inimage $outimage');

    }
 }
 〜省略〜
*********************************************************

********Perl側********************************************
#! c:/perl/bin/perl

#ライブラリの読込み
use Image::Magick;

#元画像の場所とファイル名を指定
$inimage = $ARGV[0];

#形式変換後のファイル名を指定
$putsam = $ARGV[1];

$newwidth = 2000;


#画像の書き出し
$tempimage = Image::Magick->new();
$tempimage->Read($inimage);
$tempimage = $tempimage->Transform(geometry=>$newwidth);
$tempimage->Write($putsam);
# 画像のクオリティ設定
$tempimage->Set(quality=>60);
# 減色処理
$tempimage->Quantize(colors=>64, dither=>'True');

$tempimage->Write($putsam);

exit;
***************************************************************

みなさんお忙しいと思うのですが、ご教授いただきますよう宜しくお願いいたします。 


兵頭 



PHP-users メーリングリストの案内