非常に大きな画像(2MBから50MB)をアップロードできるはずのWebサイトを構築しています。もちろんサイズを変更する必要がありますが、createimagefromjpeg関数は大量のメモリを使用します。一部の画像のメモリ使用量は800メガバイトに達しますが、私はhostgatorの共有プランを使用しており、そこでは256Mのメモリが最大です。この関数が使用するメモリをどうにかして減らすことはできますか?
2 に答える
2
Hostgatorフォーラムによると、 ImageMagickをサーバーにインストールする必要があります。効率が非常に高いため、画像のサイズ変更などにはバイナリを使用することをお勧めします。探していることを実行するには、次のようなコマンドで十分です(要求した2 MBが必要な場合)。
$SCALED_VALUE = (2097152/filesize($OLD_IMAGE))*100; #< Get the percentage of scaling that is required to go to 2MB
shell_exec('convert '. $OLD_IMAGE . '-resize ' . $SCALED_VALUE . '% new_image.jpg'); #< Perform scaling
コメントのphp_memory_limitに関する質問に答えるには; この制限はPHPの範囲内であり、ImageMagick(またはPHP以外の他のアプリケーション)には影響しません。
于 2013-01-13T15:57:25.577 に答える
1
GD拡張機能に依存する代わりに、ImageMagickやGmagickなどの別の画像操作ライブラリに切り替えてみてください。これらの依存関係をインストールして、Apacheを再起動する必要があります。
これが不可能な場合は、この回答で概説されているように、画像のピクセルサイズを小さくすることを検討してください。
于 2013-01-13T15:47:22.870 に答える