いかなる方法でもダウンロードできるようにしてはなりません。
と対立しています:
クライアントは、画像のダウンスケーリングされたバージョンを表示し、フルスケールモード(100%)で表示する画像の領域を選択できる必要があります。
...画像のすべての領域をフル解像度で表示できるようにした時点で、画像全体をつなぎ合わせることができます。そのため、(非常に不便な場合でも)効果的にフルサイズの画像を利用できるようになります。
しかし、これはどれもあなたが目標を達成するのに役立ちません。
私が行う方法は、ダウンロードする画像の領域を選択する際に使用する72dpiの透かし入りコピーを提供することです。画面のスペースが問題になる場合は、これを元の%にスケーリングできます。ユーザーに左上と右下の座標を選択してもらいます。次に、imagemagickのようなものを使用して、この領域を元の領域からコピーしてユーザーに提供します。
リソースを節約する必要がある場合は、ユーザーに事前定義されたグリッドからダウンロードさせることができます。そのため、最初にグリッド座標14:11が選択され、image_1411_crop.jpgがファイルシステムに書き込まれ、次にその座標が選択されると、ファイルが既に存在します。
編集:他の答えについてのあなたのコメントのいくつかを読んでください...
生成とサーバーサイドキャッシングをどのように行っても、同じ量の帯域幅とトラフィックを使用することになります。300dpi jpegは、生成されたばかりか、ファイルシステム上にあるかに関係なく、300dpijpegです。
CPUまたはディスクスペースを節約する必要があるかどうかを確認する必要があります。100万ギガの画像があり、ユーザーが40人しかない場合は、CPUヒットを許容できます。40ギガの画像と100万人のユーザーがいる場合は、HDDを選択してください。