Hola:
La última idea es la que al final he aplicado y me está funcionando bien en localhost (y supongo que en mi server)...
$datosfoto = $_SESSION["imagenes"][$_GET["n"]];
$fotoPng = "sid".$_GET["sid"]."_".$_GET["n"].".png";
$imagen = imagecreatefromstring($datosfoto);
$lafoto = imagePng($imagen, $fotoPng);
$foto = file_get_contents($fotoPng);
unlink($fotoPng);
Y obtengo la foto en la variable $foto... he probado con imágenes jpg, gif y png y no he tenido problemas.
Gracias.