2

これを取得したため、imagickクラスを使用できないため、現在、php exec()を使用してimagemagickで画像を生成しています

Fatal error: Class 'Imagick' not found

解決策として exec() を使用しますが、問題は実行が遅すぎることです。

私は imagick クラスを使用しようとしたことがないので、この方法での生成が exec() よりも速いかどうかはわかりません。

問題は、imagick クラスと exec() のどちらを使用するのがよいかということです。

更新: これは私の phpinfo GD です ここに画像の説明を入力

これが私が持っているimagickのバージョンです

Version: ImageMagick 6.0.7 08/25/10 Q16 http://www.imagemagick.org
Copyright: Copyright (C) 1999-2004 ImageMagick Studio LLC
4

4 に答える 4

1

理想的には、セキュリティのためにサーバーで exec を無効にする必要があります-それがあなたのサーバーでない場合..まあ-それはまだあるはずです:-)

私が使用したサーバーで無効になっているのを見たことはありません。共有するかどうか。

Safe_mode PHP から削除され、有効にすると致命的な E_CORE_ERROR レベルのエラーが生成されます。

とにかく、コースの馬 - 場合によっては、Imagick の方が高速です。他の人では、GD の方が高速です。それは、何をしようとしているかに依存します。しかし、Imagemagick はおそらく IMagick よりも遅いです。

数年前に速度テストを行ったところ、いくつかの興味深い結果が得られました。結果 PDFであり、おそらく今更新することで解決できます。

大きなファイルでは GD がハングしましたが、メモリを増やす方法があるかもしれません。もう少し複雑なことをしている場合、Imagick の使用はより混乱します。

あなたが何をしているのか言わないので、これ以上の情報を提供することはできません.

于 2013-02-17T21:26:41.707 に答える
0

私の経験では、どちらも速度の点で同等です。大きな欠点は、Imagick クラスに関するオプションとカスタマイズの欠如です。とはいえ、私は通常、セキュリティへの影響から exec() を避けています。

于 2013-02-13T01:04:55.307 に答える
0

Imagick クラスを使用する方が高速です。

理由: Exec は、変換実行可能ファイル (または使用している imagemagick のツール) をロードするために新しいプロセスをフォークする必要があります。そのため、通常、最初にディスクにアクセスしてバイナリを見つける必要があります。将来の試行では OS を使用する必要があります。それをロードするためのキャッシュなので、速度は同等です

imagick クラスは PHP にコンパイルされたリンク ライブラリであり、システムでの php のロード方法 (CGI / fastcgi / 拡張機能) に応じてパフォーマンスが向上します

別のポスターが言ったように、imagick クラスにはオプションが少ないですが、オプションが直接利用できない 99% のケースでの私の経験では、それを行う別の方法があります。

編集:理想的には、セキュリティのためにサーバーでexecを無効にする必要があります-サーバーでない場合..まあ-それでも:-)

于 2013-02-13T01:07:41.180 に答える
0

exec はセキュリティの問題であるため、imagick クラスを使用することをお勧めします。ただし、そもそも必要ありません。組み込みの GD 関数を使用してみてください。

于 2013-02-13T01:08:52.947 に答える