Thumbnailling the images on the fly for the shots on your server would still probably be faster than making the user download an entire MB+ image.
<?php
define(PHOTO_DIR, '.');
define(MAX_WIDTH, 120);
define(MAX_HEIGHT, 120);
$source_file = str_replace('..', '', $_SERVER['QUERY_STRING']);
$source_path = PHOTO_DIR . "/$source_file";
if ( file_exists( $source_path ) )
{
$source = imagecreatefromjpeg($source_path);
$width = imagesx($source);
$height = imagesy($source);
$scale = min(MAX_WIDTH/$width, MAX_HEIGHT/$height);
$thumb_width = floor($scale*$width);
$thumb_height = floor($scale*$height);
$temp = imagecreatetruecolor($thumb_width, $thumb_height);
imagecopyresampled($temp, $source, 0, 0, 0, 0, $thumb_width, $thumb_height, $width, $height);
imagedestroy($source);
$source = $temp;
}
else
{
$source = imagecreate(MAX_WIDTH,MAX_HEIGHT);
imagecolorallocate($source,0,30,80);
}
header("Content-type: image/jpeg");
imagejpeg($source, '', 75);
?>
That's a basic script I use for thumbnails. It's pretty easy to follow and works only for JPEGs but can be modified to work with GIF/PNG too.
I would suggest either forcing the users to upload images to your server so that you can work with them, or simply use text links with a description to kill the annoyingly long load times.