Dovestri avere delle thumb, cioè delle immagini più piccole salvate sul server e caricare queste immagine al posto delle originali
Codice PHP:
//per mantenere le proporzioni originali
//prendi le dimensioni dell' immagine originale scegli le dimenisioni in larghezza e altezza
$targetFile = "immagini/nomeimmagine.jpg";
$originale = imagecreatefromjpeg($targetFile);
$originalew = imagesx($originale);
$originaleh = imagesy($originale);
//riduci le dimensioni di un fattore a tua scelta
$fattoreRid = 10;
$dimw = $originalew / $fattoreRid;
$dimh = $originaleh / $fattoreRid;
//fine per mantenere le proporizioni originali
//se non ti interessa mantenere le proporzioni limitati a inizializzare $dimw e $dimh
$thumb = imagecreatetruecolor($dimw, $dimh);
imagecopyresized($thumb, $originale, 0,0,0,0, $dimw, $dimh, $originalew, $originaleh);
//specifica in $targetFile il percorso dell'immagine ridimensionata
$targetFile = "immagini/thumbs/nomeimmagine_t.jpg";
//salva l'immagine
imagejpeg($thumb, $targetFile, 50);
studia un pò imagejpeg mi pare di ricordare che avesse un terzo parametro per la qualità più è basso e meno pesa l'immagine, nell'esempio dovrebbe essere al 50% non ne sono sicuro... dimenticavo che servono le librerie GD per utilizzare queste funzioni