画像ホスティング Web アプリケーションの場合:
保存した画像の場合、PHP (またはその他のもの) を使用してその場でサムネイルを作成することは可能ですか? または、1 つ以上の異なるサイズのサムネイルをディスクに保存して、それらをロードする必要がありますか?
どんな助けでも大歓迎です。
画像ホスティング Web アプリケーションの場合:
保存した画像の場合、PHP (またはその他のもの) を使用してその場でサムネイルを作成することは可能ですか? または、1 つ以上の異なるサイズのサムネイルをディスクに保存して、それらをロードする必要がありますか?
どんな助けでも大歓迎です。
サムネイルをディスクに保存します。画像処理には多くのリソースが必要であり、画像のサイズによっては、php で許可されているデフォルトのメモリ制限を超える可能性があります。アプリケーションのみを実行している独自のサーバーを使用している場合は、それほど問題ではありませんが、画像のサイズを変更するには多くの CPU パワーとメモリが必要です。いずれにせよ、その場でサムネイルを作成することを検討している場合は、あまり変更する必要はありません。最初の要求時に、ソース ファイルからサムネイルを作成し、ディスクに保存します。その後の要求では、ディスクから読み取るだけです。
phpThumbを使用します。これは、両方の長所であるためです。サムネイルはその場で作成できますが、画像を自動的にキャッシュして、将来のリクエストを高速化します。GDライブラリとImageMagickライブラリの周りに素敵なラッパーを作成します。一見の価値あり!
サムネイルをキャッシュする方がはるかに良いでしょう。それらをその場で生成すると、システムに非常に負担がかかります。
サイトの利用形態にもよりますが、基本的に各画像の閲覧回数はどのくらいを想定していますか?
サムネイルの場合、かなり長い間存在する可能性が高いため (画像は一度アップロードされ、変更されることはないため、サムネイルも変更されません)、通常、完全な画像がアップロードされたときに生成する価値があります。後で保存します。サイトが完全に停止していない限り、サイトは存続期間中に何度も (数百または数千回) 閲覧されることになり、最近ではディスクは待ち時間よりもはるかに安価になります。もちろん、これはサーバーの負荷が増加するにつれてより重要になります。
逆に、1 時間ごとに更新される (より頻繁ではないにしても) 株価チャートのようなものについては、その場で作成したほうがよい状況です。ユーザーはこれまでに表示されます。
または、凝りたい場合は、最初に画像が必要になったときにオンザフライで画像を生成し、その後、生成されたデータが変更されるまで、事前に生成された画像を表示することで、どちらのアクセス パターンを処理するように最適化できます。その時点で削除して、次に必要になったときに再生成されるようにします。しかし、それはサムネイルのような静的なものにとってはやり過ぎです.IMO.
gd ライブラリとimagemagickをチェックしてください