- ベストアンサー
縮小画像を事前ではなく画像表示時に作成しても良い?
- 画像アップロードする際に縮小するか、画像表示時に縮小するか悩んでいます。
- 縮小画像を事前に作成しておく方法と、画像表示時に縮小する方法のメリットとデメリットを教えてください。
- 画像の表示速度やストレージの効率性などを考えて、どちらの方法が適しているか教えてください。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
案2だとアクセスがあってはじめて画像を生成するので、当然ながら生成に掛かる時間分だけレスポンスが遅れます。 また、毎回画像処理を行うのでCPUやメモリ等のリソースを喰う事になります。 アクセス頻度が少ないのであれば問題ありませんが、アクセス頻度が多ければそれだけ沢山のリソースを用意しておく必要がありサーバーのコストが増えますし、処理待ちが発生すればそれだけ応答が遅くなっていきます。 案1のメリットは応答時間が短くなる事とサーバーリソースが少なくて済む事。 デメリットはディスク容量が多く必要になること。 案2のメリットはディスク容量が少なくて済む事。 デメリットは応答時間が長くなる事とアクセス頻度が多い場合サーバーリソースが沢山必要な事。 ディスク容量を増やす費用と、CPUやメモリを増やす費用のどちらが安いかを考えた場合、通常は案1を採用することになります。
その他の回答 (2)
- agunuz
- ベストアンサー率65% (288/438)
>事前作成せずにその都度処理するので、もしかすると >画像表示とかが遅くなるのでしょうか? もしかしなくても遅くなります(生成に要する時間は確実にレスポンスが遅れる)。しかも毎回作成すると、毎回同じ処理を行うことになります。 一度しか表示しないならいいですが、保存画像のサムネイルなんてしょっちゅう表示させることになりますから(元画像よりも表示頻度は高くなるのが普通でしょ)その都度「まったく同じ処理」を行うことになります。 メリットは保存領域の節約くらいでしょうけど、そもそもサムネイルサイズなのでそれほどの節約になるとも思えません。 あと、動的に生成すると「スクリプト経由」でしかアクセス出来なくなりますよね。これはアクセス制御が必要な局面ではメリットかもしれませんが代償が大きすぎます。アクセス制御に関しては他の手法を採るべきです。
お礼
回答ありがとうございました。 >もしかしなくても遅くなります(生成に要する時間は確実にレスポンスが遅れる) ・「確実にレスポンスが遅れる」のであれば、選択できないですね >一度しか表示しないならいいですが、保存画像のサムネイルなんてしょっちゅう表示させることになりますから(元画像よりも表示頻度は高くなるのが普通 ・確かにそうですね ・事前に縮小画像を作成するようにします ・大変参考になりましたー
- aokii
- ベストアンサー率23% (5210/22062)
画像を表示する際に縮小しても同じです。 「案2」のほうが記憶容量節約でいいです。
お礼
回答ありがとうございましたー
お礼
回答ありがとうございました。 >生成に掛かる時間分だけレスポンスが遅れます ・やっぱりそうなんですね ・大変参考になりましたー