perlで作ったのですが画像処理が途中で終わってしまう時があります
幅が1500ピクセルで700k以内の画像なら処理できるのですがそれを超えると途中から真っ黒の画像になってしまいます
なぜなのでしょう?
以下スクリプトです
#!/usr/local/bin/perl
print "Content-type:text/html\n\n";
use Image::Magick;
use Image::Size;
my $file = "image.jpg";
my $image = Image::Magick->new;
$image->Read($file);
my ($width, $height) = $image->Get('width', 'height');
my $new_width = "300";
my $ritu = $new_width / $width;
$width = $width * $ritu;
$height = $height * $ritu;
$image->Resize(width=>$width, height=>$height);
$image->Profile(name => "*", profile => "");
$image->Write("image_s.jpg");
ImageMagickを使用されているのだと思いますが、
1500ピクセルで700kという一定の条件を超えると発生すると言うことから、
多分サーバの処理能力を超えてしまっている可能性があります。
この場合、解決方法としてはレンタルサーバを利用している以上、
・もっとパワーのあるレンタルサーバに変える
・レンタルサーバに相談する
・自分で効率的なPerlを組む
・サムネイルを自分で作る
程度しか、ありません。
あまり参考にならなくて申し訳ありません
(ダミーURL)
あまり詳しくは無いんですが、
共有タイプのレンタルサーバによっては、CGI等の処理時間が一定を超えると、
負荷軽減の為にプロセスを強制終了させるところがあるようです。
URLはダミー
回答ありがとうございます
プロセス強制終了ですか
だとしたらどうしようかな
回答ありがとうございます
やはりそう思いますか
自宅サーバーでやってみると問題ないのでそうなのかなぁなんて思ってたりもして
プログラムの書き方じゃないのかなぁ