Bueno, esta es la funcion que uso para crear los thumbnails a partir de imagenes .PNG:
Código PHP:
<?php
function thumb($imagen, $altura, $tipo, $modalidad) {
$dir_thumb = "archivos/mapas/screens/$tipo/$modalidad/";
$nombre=basename($imagen);
$nombre_aux = $nombre;
$camino=dirname($imagen)."/";
if (!file_exists($dir_thumb.$nombre)) {
$path = $camino.$nombre;
// Aquí es donde me da el error.
$img = imagecreatefrompng($path) or die("No se encuentra la imagen $path<br>\n");
$datos = getimagesize($camino.$nombre) or die("Problemas con $camino$nombre<br>\n");
$ratio = ($datos[1] / $altura);
$anchura = round($datos[0] / $ratio);
$thumb = imagecreatetruecolor($anchura,$altura);
imagecopyresampled ($thumb, $img, 0, 0, 0, 0, $anchura, $altura, $datos[0], $datos[1]);
imagepng($thumb,$dir_thumb.$nombre_aux);
}
else {
//error...
}
}
?>
EDIT: Se me olvido poner como valido los png. Lo hago asi:
Código PHP:
$extension_mapa = strtolower(strrchr($HTTP_POST_FILES['mapa']['name'],'.'));
if (($extension_mapa == ".png")
Cuando el usuario envia la imagen al servidor, compruebo que tenga las medidas adecuadas, que sea .PNG, y si es correcta la subo al servidor. Entonces llamo a esta funcion que coje la foto subida, genera el thumb y lo guarda en otro directorio.
No se, a ver si hay suerte y alguno veis donde puede estar el error.
Gracias.