Niente di troppo complesso.

Presupponendo che tu conosci l'indirizzo fisico delle imamgini sul server... in php usi la classe Zip per creare un archivio vuoto (quello che segue è un esempio preso da php.net)

Codice PHP:
$percorso_file="scrivi_qui_il_percorso_del_file";
$zip = new ZipArchive();
$filename $percorso_file;

if (
$zip->open($filenameZIPARCHIVE::CREATE)!==TRUE) {
    exit(
"cannot open <$filename>\n");
}

$zip->addFile($thisdir "/too.php","/testfromfile.php");
$zip->close(); 
Dove vedi i richiami ad addFile ci aggiungi il percorso delle immagini su disco sul server.

Un volta creato e chiuso il file zip, ti basta mandare gli header per farlo scaricare (attenzione non devi aver fatto nessuna echo prima o mandato a video parti di html), con un codice simil e a questo
Codice PHP:
header("Content-type: Application/octet-stream");
header("Content-Disposition: attachment; filename=immagini_zippate);
header("
Content-DescriptionDownload PHP");
readfile(
$percorso_file); 

Gabriele