8

問題- Web サイトに画像アップロード機能を設定したいと考えていました。しかし、元の画像と画像の小さなサムネイルの両方を表示したかったのです。

選択肢- 画像のアップロード時に別の画像 (サムネイル) をディレクトリに作成する方法と、画像が要求されるたびに高さと幅を一定の比率で縮小して小さいバージョンを表示する方法のどちらが良いですか?

現在のやり方- 後者の方が良いように思えます。なぜなら、ディスクのサイズはそれほど大きくならないからです。ただし、イメージのサイズを何度も変更する必要があります。どっちがいいと思いますか?

これは Web アプリケーションに関する一般的な質問であり、特定の言語はありません。

FacebookやGoogleがどのようにそれを行うのか考えていますか?

Question - My question is how to generate thumbnails and show them on a website - by creating a copy of the original image with smaller dimension or by generating the thumbnail dynamically every time it is requested.

4

5 に答える 5

6

ほとんどの場合、アップロード時にサムネイルを作成することをお勧めします。ストレージが懸念される場合は、要求に応じて変換し、結果をメモリ ストアにキャッシュできます。キャッシュの有効期限が切れる前に再度要求された場合、変換は必要ありません。

多くの場合、ストレージは非常に安価であるため、そのような余分な複雑さには向かないでしょう。

于 2013-02-07T15:54:42.580 に答える
2

サムネイルバージョンを作成してディスクに保存するだけです。ハードディスクの容量は非常に安いです。数TBで£70。

于 2013-02-07T15:56:43.560 に答える
1

サムネイルを作成する方が良いオプションであり、ディスク容量をあまり消費しません。クライアントは、ページを開くときに小さいサイズも読み込みます。リクエストに応じて画像を変換すると、ページの読み込みに時間がかかります;)

于 2013-02-07T15:57:54.547 に答える
1

この組み込み機能を備えたほとんどの CMS を見ると、ほとんどの場合、アップロード時に画像のサムネイル画像が作成され、サーバーに保存されます。

これは、「Google が行うことを行う」という古いことわざにまでさかのぼりますが、CMS を使用します。

于 2013-02-07T15:57:58.867 に答える
1

「より良い」は、設定した基準によって異なります。

ほとんどのアプリケーションでは、ディスク容量は問題になりません。また、サムネイルの保存が問題である場合、オリジナルの保存は大きな問題に違いありません。適切なデジタル カメラの写真は何メガバイトにもなりますが、サムネイルは 50K を超えてはなりません。

帯域幅とパフォーマンス (クライアントが認識する) は、通常、より大きな懸念事項です。多くの人が画像サムネイルのギャラリーをブラウズしている場合、50Kb のサムネイルを提供すると、数メガバイトの高解像度画像を提供するよりもはるかに高速になります (帯域幅が安くなります)。

さらに、URL のようなサムネイルを提供し、<img src="images/thumbnail/foobar.jpg">適切なキャッシュ ヘッダーを設定することで、多くのダウンストリーム キャッシュを取得する必要があります<img src="thumbnail.php?image=image/foobar.jpg>

私は以前、何十万もの製品画像を管理する Web サイトで働いていました。サムネイルを自動的に作成するようにImageMagickをセットアップします。セットアップによっては、ファイルのアップロード時ではなく、サムネイルが最初に要求されたときにこれを行うのが理にかなっている場合があります。これは、変換がかなりリソースを消費する可能性があり、アップロード時にそれを行うと、待機したいよりも時間がかかるためです。 . 最新のハードウェアでは、それが問題にならない場合があります。

また、サムネイルを元の画像と同期させることについても質問があります。ユーザーが新しい画像をアップロードした場合は、サムネイルを更新する必要があります。オリジナルが削除された場合は、サムネイルも削除する必要があります。

于 2013-02-07T16:43:34.557 に答える