1

PHP と GD を使用してサムネイルを動的に作成する方法を検討していましたが、大きな画像を選択するたびに、約 4 ~ 5 MB の 10MegaPixels でエラーが発生します。

**images/Surabhi_Cow.jpgimages/tn/Surabhi_Cow.jpg
Fatal error: Allowed memory size of 31457280 bytes exhausted (tried to allocate 10368 bytes) in C:\Program Files\xampp\htdocs\MySite\Staff\test.php on line 51**

php.ini の memory_limit を 60 に変更するとうまくいきますが、私のホストでは memory_limit を 32M までしか許可していません。その場でサムネイルを生成するには、他にどのようなオプションが必要ですか? phpThumb() をチェックしましたが、実際にはわかりません。したがって、他のオプションは大歓迎です!

4

5 に答える 5

3

を使用しますImageMagick。GD よりも大きな画像を処理するのにはるかに効率的です。

于 2009-02-10T06:10:19.787 に答える
1

サムネイルを生成するだけの場合。imagethumb.phpと呼ばれるこの素敵な小さなスクリプトをお勧めします。ここからダウンロードできます:http ://www.olivo.net/software/imagethumb/

このスクリプトは、ピクセル化がまったくない優れたサムネイルを生成します。スクリプトを呼び出すURLに追加するheightまたはwidth引数を受け入れます。本当に使いやすく、ドキュメントが付属しています(2分間すべて読むことができます)。

これに着陸する前に、「ThumbsUp」などの他のサムズアップスクリプトを試しました。ところで、.png画像と.gif(正しく思い出せば)もレンダリングします。キャッシュ機能を使用すると、大きなファイルがある場合にサーバーで簡単に使用できます。また、サーバーにGDライブラリまたはImageMagickがインストールされていることを前提としています。幸運 ;)

于 2009-02-10T17:43:18.693 に答える
0

他の人が言ったように、画像がそれほど大きい場合は、GD をやめて ImageMagick に切り替えるときです。ただし、警告の 1 つ: すべてをコマンドラインで実行してください。クラス ラッパーは、最後の 1 つずつ、非常に良い再発明が必要な車輪です。

于 2009-02-10T14:03:23.587 に答える
0

私はこのトピックについていくつかの調査を行っていましたが、Imagick はより大きな画像を操作するのにはるかに効率的であることがわかりました。許可されたメモリまたは最大実行時間のいずれかを渡します。より良いアプローチは、Imagick ライブラリを使用することです。Imagick を使用してオンザフライで php でサムネイルを生成する方法に関する情報を確認してください。

于 2012-11-08T10:22:01.020 に答える
0

コマンドラインベースのアプローチを使用することを検討してください。たとえば、コマンドラインからImageMagickを呼び出して、画像のサイズを変更できます。

それ以外に、純粋な PHP では、RAM よりも大きい ( RGB形式の) 画像を編集する方法を理解するのは困難です...

于 2009-02-10T06:11:22.840 に答える