Vaya, me volvi loco y al final consegui cargar cuatro capas con un código sencillo, pero mi objetivo era cargar la imagen en base a unos valores.
Curiosamente si el valor llega por $ lo acepta, pero me pasa lo siguiente
$torn = "tornilloplata.png"; //ASI FUNCIONA A LA PERFECCION
//$torn = $tornillo2; // ASI PASA DEL TEMA, NO LO LEE
He probado 1000 posiciones, con comillas, sin comillas, la Query funciona a la perfeccion, la saco unas lineas antes y vero resultado.
$imagen4 = imagecreatefrompng($ruta.$ResultQuerytornillo[fotoprod]);
Intuyo que mi ignorancia y las exigencias de las librerías me quitan el sueño, espero alguien de con la solución
$tor=8;
$Querytornillo = 'select fotoprod from productos where codprod='.$tor;
$IdConsultatornillo = mysql_query($Querytornillo, $IdConexion);
$ResultQuerytornillo = mysql_fetch_array($IdConsultatornillo);
$tornillo2 = $ResultQuerytornillo[fotoprod];
print $tornillo2 ;
$ruta="images/media/";
$pie="piedrascromo.png";
$fron ="frontalfuego2.png";
$llama ="llamaazul.png";
$llam =$llama;
$torn = "tornilloplata.png"; //ASI FUNCIONA A LA PERFECCION
//$torn = $tornillo2; // ASI PASA DEL TEMA, NO LO LEE
$tornillo = $ruta.$torn;
$piedras = $ruta.$pie;
$frontal = $ruta.$fron;
$llamas = $ruta.$llam;
$imagen1 = imagecreatefrompng($llamas);
$imagen2 = imagecreatefrompng($piedras);
$imagen3 = imagecreatefrompng($frontal);
$imagen4 = imagecreatefrompng($tornillo);
$fondo = imagecreatetruecolor(600, 300);
imagecopy($fondo,$imagen1,0,0,0,0,600,300);
imagedestroy($imagen1);
imagecopy($fondo,$imagen2,0,0,0,0,600,300);
imagedestroy($imagen2);
imagecopy($fondo,$imagen3,0,0,0,0,600,300);
imagedestroy($imagen3);
imagecopy($fondo,$imagen4,0,0,0,0,600,300);
imagedestroy($imagen4);
// Damos salida a la imagen final
header("Content-type: image/png");
imagepng($fondo);
// Destruimos ambas imágenes
imagedestroy($imagen1);
imagedestroy($imagen2);
imagedestroy($imagen3);
imagedestroy($imagen4);