2012-02-28 16 views
1

PHPでimagecreatefrompng()の機能に問題があります。imagecreatefrompng()とサイズ制限

私は、ユーザーが独自のスプライトコミック(スプライトと呼ばれるビデオゲームから抽出したリソースで作られたコミックの種類)をアップロードできるようにするという目標を持っているウェブサイトを開発します。

ギャラリアには漫画のミニチュアをいくつか表示したいので、私はGDを使っています。もちろん、imagecreatefrompng()です。

しかし、それは、大きな画像と致命的なエラーがスロー:

( 4545600バイトを割り当てしようとした)、同じエラーが発生したメモリのうち、(8388608を割り当て):

致命的なエラーini_set()を介して "memory_limit"の値を設定した後でも、 ...

リサーチの数時間後それは解像度のためにあるようです:imagecreatefrompng()は1以上の040 000ピクセルを持つイメージを管理できません...!

私は、ユーザーによって送信された漫画のサイズを制限することはできませんので、それは、非常に非常に不便だ...

あなたがこの問題を解決するための任意のヒントを知っていますか?

Thnaks in advance!

+0

画像を扱う方法としてFlashを使用することを検討してください。サーバの負荷がかかる場合がありますが、そのような制限はありません。ちょうどアイデア、決してそれをやったことは実際に可能かどうかわからない。 –

+0

私はFlashを使う考えが嫌いですが...もし答えがありましたら:) – KorHosik

答えて

2

仮想メモリをさらに設定するには、ホスティングプロバイダに依頼する必要があります。それはphp.ini - memory_limitの設定であり、無料で問題はありません。あなたは今最も低い値になっています。

+0

"memory_limit"が原因ではないようです:私のデフォルト値は90Mbです。 /あなたの答えをありがとう! – KorHosik

+0

私は正しいと思います。必要なのは、各ピクセルがメモリ内にピクチャビットの深さで乗算されていることです。 1 000 000ピクセルはaproxを意味します。 image 1024 x 768 px。 16ビットの深さでは、基本的な負荷のために最小16Mbのメモリを割り当てる必要があります。サイズ変更または他の操作中に同じサイズのコピーが使用されています。画像操作のために実際に必要とされるメモリは、思われるよりもはるかに高い。ビットカウントの結果を乗算するために、koeficent 1,5 - 2が使用されています。 –

関連する問題