Sì è possibile.
Il "discorso" è però avere le miniature: puoi o caricarti in una cartella (oltre alle immagini originali) le miniature di ogni immagine, oppure tramite uno script php generare "al volo" le miniature.
Quindi, per far quel che chiedi solamente con HTML potresti fare:
Codice HTML:
<a href="immagine_originale.jpg"><img src="immagine_mini.jpg"></a>
Se le immagini sono tante, puoi utilizzare uno script PHP che le generi automaticamente; ho ritrovato questo che avevo fatto:
Codice PHP:
<?php
if(!isset($_GET['url']))
die();
$img = imagecreatefromstring(file_get_contents(urldecode($_GET['url'])));
if(!$img)
die();
header('Content-Type: image/jpeg');
$width = imagesx( $img );
$height = imagesy( $img );
$new_width = (isset($_GET['w']) && is_numeric($_GET['w']))?$_GET['w']:150;
$new_height = floor( $height * ( $new_width / $width ) );
$thumb = imagecreatetruecolor( $new_width, $new_height );
imagecopyresized( $thumb, $img, 0, 0, 0, 0, $new_width, $new_height, $width, $height );
imagejpeg($thumb);
imagedestroy($img);
imagedestroy($thumb);
Se lo inserisci tra le immagini, chiamandolo ad esempio "miniatura.php", allora dovrebbe funzionare così:
Codice HTML:
<a href="immagine_originale.jpg"><img src="miniatura.php?url=immagine_originale.jpg&w=200"></a>
w=200 indica la dimensione dell'immagine, invece di 200 puoi specificare qualunque altro valore.
Ciao!