2016-11-14 3 views
1

PHPを使用してイメージのサイズを変更しようとしています。なぜ私は500ピクセル以上のイメージをサイズ変更するときにこのエラーが発生します。imagecopyresampled()は、パラメータ2がリソースであることを予期します。

ここでエラーです:ここで

imagecopyresampled() expects parameter 2 to be resource, null given 

は動作しません私のコードです:

$resize = new ResizeImage($targetFile); 
     $resize->resizeTo(1800, 1800); 
     $resize->saveImage($xxlFile, 100); 

はここで仕事をする私のコードです:

$resize = new ResizeImage($targetFile); 
     $resize->resizeTo(500, 500); 
     $resize->saveImage($xxlFile, 100); 

私のスクリプトが破壊されます右:

$this->newImage = imagecreatetruecolor($this->resizeWidth, $this->resizeHeight); 
imagecopyresampled($this->newImage, $this->image, 0, 0, 0, 0, $this->resizeWidth, $this->resizeHeight, $this->origWidth, $this->origHeight); 

私の画像は5616×3744です。なぜ1800ピクセル幅のサイズを変更できませんか?

ありがとうございました。

答えて

0

$this->image is null ...デスティネーションイメージを作成したときにスクリプトが失敗しました。このような大きな画像には十分なメモリがない可能性がありますか?

テストの場合は、ResizeImage()ini_set("memory_limit", "1024M");を実行する前にこのコマンドを実行してください。

また、5616×3744pxイメージを読み込むには63MBのメモリ(24ビット/ 3バイトイメージ)が必要で、1800、1800px(24bit/3byte)イメージにサイズを変更するには10MBのメモリが必要です64MBまたは32MBのメモリに設定)。

幸運を祈る!

[EDIT] だからあなたの500x500x3イメージがメモリの750キロバイトが必要になり、あなたの大きな絵がメモリの63 078キロバイトを取り、一緒にちょうど 64メガバイトのメモリ制限の下で63 828キロバイト、に土地をWIL :)

ます
+0

あなたは最高です。それがメモリ問題です。ソリューションをありがとう。 – LargeTuna

関連する問題