Lo normal es que te montes un pequeño switch() en base al formato MIME de tu archivo (imagen).
Código PHP:
<?
switch($MIME){
case "image/jpeg":
$img=imagecreatefromJPG($file);
break;
case "image/png":
$img=imagecreatefromPNG($file);
break;
// etc ....
}
No sé si obtienes el formato MIME de la imagen por alguna función ya .. o lo piensas sacar sólo en función de la extensión del archivo (cosa no muy segura) .. o el formato MIME ya lo tienes (por sacarlo de alguna BBDD que previamente lo almacenastes). En cualquier caso .. esa es la técnica. "Tipos" de imagen que GD gestiona no son tantos y la opción del "eval"? .. creo que es "sobrecargar" a PHP en un proceso que con un simple "swich()" lo tendrías ...
Un saludo,