1

単純なイメージマネージャークラスと次のコードを使用しています。

<?php
include('SimpleImage.php');
$image = new SimpleImage();
$image->load($target_path);
if($image->getWidth() > 500) {
    $image->resizeToWidth(500);
    echo "<p>Image Resized</p>";
} else echo "<p>Image did not need to be resized.</p>";
$image->save($target_path);
echo "<p>Image Saved</p>";
?>

echo幅700の画像をアップロードすると、画像のサイズが正常に変更されますが、非常に大きな画像(幅〜= 2300)をアップロードすると、機能せず、メッセージが表示されません。

特定のphp画像関数には、これを引き起こしている可能性のあるサイズ制限がありますか?

4

3 に答える 3

6

ほとんどの場合memory_limit、php.ini で指定された設定にヒットしている可能性があります。

error_reporting(E_ALL);スクリプトに追加して、出力を確認します。

phpinfo()現在のメモリ制限設定を確認するために使用します。

で変更できる場合もありますini_set("memory_limit", xyz)。それ以外の場合は、php.ini を変更する必要があります。

2300 x 2300 ピクセルの画像は少なくとも

2300 x 2300 x 3 = 15,870,000

= おおよそ 16 メガバイトの RAM (アルファ チャネルがある場合は 2300 x 2300 x 4) であるため、これをうまく機能させるには、スクリプトごとに少なくとも 24 メガバイトの RAM が必要です。多分もっと。

于 2010-07-23T15:26:17.800 に答える
1

アップロード ファイルのサイズには制限があります。php.ini で設定できます:

upload_max_filesize
post_max_size
于 2010-07-23T15:26:53.137 に答える
1

エラーログを確認してください。メモリ制限を超えている可能性があります ( memory_limitini 設定で)。ini_set('memory_limit', '32M');ファイルの先頭に追加してみてください。

そして、あなたの質問に直接答えるために、いいえ、内部関数にサイズ制限はありません...

于 2010-07-23T15:27:21.667 に答える