Последний раз я использовал как источник картинок один большой JPG. Сам по себе JPG грузился, когда юзер хотел увидеть большой размер при нажатии на превьюшку. А сам набор превьюшек выдавал в скрипт такого вида, ему передаем URL jpg-шки и степень ресайза:

PHP код:
<?php
$infile = $_GET['infile'];
$rat = floatval($_GET['rat']);
$im = imagecreatefromjpeg($_SERVER['DOCUMENT_ROOT'].$infile);
$oldw = intval(imagesx($im));
$oldh = intval(imagesy($im));
$neww = $oldw * $rat;
$newh = $oldh * $rat;
$im1 = imagecreatetruecolor($neww, $newh);
imagecopyresampled($im1, $im, 0, 0, 0, 0, $neww, $newh, $oldw, $oldh);
header("Content-type: image/jpeg");
imagejpeg($im1, "", 100);
imagedestroy($im);
imagedestroy($im1);
?>
То есть это для одной картинки.
В XML-е можно писать URL только основных картинок, а превьюшки сгенерировать на стороне сервера.
Если использовать PNG, то скрипт требует доработки.