Eso te sucede por qué no has usado ninguna cabecera HTTP para tal fin (para dar el nombre al archivo que vas a generar) como por ejemplo:
Código PHP:
header("Content-Type: image/jpeg");
header("Content-Disposition: inline; filename=".basename($_GET['imagen']);
La función basename() obtiene el nombre del archivo de una ruta (URL) dado completo .. En este caso .. tu nombre de archivo que solicitas a tu script y pasas a tus funciones para crear esos thumbnails o lo que desees.
Un saludo,