should not be available for download in any way.
does not match:
The client should see the downskaled version of the image and be able to select the area to view in full scale (100%).
... in the place where you allow viewing of all areas of the image in full view, the entire image can be stitched together. so that you are effective (if very inconvenient) to make a full-size image available.
none of this helps you achieve your goal.
as I would do, it would provide a 72dpi watermarked copy to use when selecting the image area to upload. you could scale this to% of the original if the problem with the screen was a problem. ask the user to select the upper left and lower right coordinates. then use something like imagemagick to copy this area from the original to serve the user.
if you need to save resources, you can load users from a predefined grid, so the first grid coordinate is 14:11, image_1411_crop.jpg is written to the file system, and the next time it is selected, the file already exists.
edit: read some of your comments on other answers ...
no matter how you plan to generate and cache servers, you will use the same bandwidth and traffic. 300ppi jpeg is 300dpi jpeg, regardless of whether it was just generated or sitting in the file system.
you need to find out if you need to save processor or disk space. if you have a million image images and only forty users, you can afford to hit the processor. if you have forty gigs of images and a million users, go to your hard drive.
nailitdown
source share