[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 メーリングリストの案内