質問

画像ホスティング Web アプリケーションの場合:

保存した画像について、PHP (またはその他) を使用してその場でサムネイルを作成することは可能ですか、それとも 1 つ以上の異なるサイズのサムネイルをディスクに保存し、それらをロードするだけでよいでしょうか?

助けていただければ幸いです。

役に立ちましたか?

解決

サムネイルをディスクに保存します。画像処理には多くのリソースが必要であり、画像のサイズによっては、php に許可されているデフォルトのメモリ制限を超える可能性があります。アプリケーションのみを実行している独自のサーバーがある場合は、それほど心配はありませんが、画像のサイズを変更するには大量の CPU パワーとメモリが必要になります。いずれにせよ、オンザフライでサムネイルを作成することを検討している場合は、あまり変更する必要はありません。最初のリクエストでソース ファイルからサムネイルを作成し、ディスクに保存し、その後のリクエストではディスクからそれを読み取るだけです。

他のヒント

私が使う phpThumb, 、それは両方の長所だからです。サムネイルをその場で作成できますが、将来のリクエストを高速化するために画像が自動的にキャッシュされます。GD および ImageMagick ライブラリの優れたラッパーを作成します。一見の価値あり!

サムネイルをキャッシュした方が良いでしょう。それらをその場で生成すると、システムに非常に負担がかかります。

サイトの利用パターンにもよりますが、基本的に各画像は何回閲覧されると予想されますか?

サムネイルの場合、かなり長期間存在する可能性が高いため (画像は一度アップロードされると変更されないため、サムネイルも変更されません)、通常、完全な画像がアップロードされるときに生成する価値があります。後で使用できるように保存しておきます。サイトが完全に機能しなくなった場合を除き、サイトは存続期間中に何度も (数百、数千回) 閲覧されることになり、最近ではディスクの方がレイテンシーよりもはるかに安価になっています。もちろん、サーバーの負荷が増加するにつれて、これはさらに重要になります。

逆に、株価チャートのような 1 時間ごとに更新されるもの (より頻繁ではないにしても) の場合は、必要のない画像を常に生成するために CPU 時間を無駄にしないように、その場で作成したほうが良い状況になります。ユーザーはこれを目にすることになります。

または、さらに凝ったことをしたい場合は、最初に必要なときにその場で画像を生成し、その後、生成されたデータが変更されるまで、事前に生成された画像を表示することで、どちらのアクセス パターンを処理するように最適化することもできます。その時点で削除すると、次回必要になったときに再生成されるようになります。しかし、サムネイルのような静的なものにとってはやりすぎでしょう、私の意見では。

をチェックしてください gdライブラリ そして イメージマジック

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top