Hola, gracias por contestar:
jam1138 lo del eco es para saber si entra o no en la función, pero no jode el proceso.
nx00: de lijo probare esta clase que tiene muy buena pinta,
Al final lo solucioné con este código
Código PHP:
function thumbjpeg($imagen,$anchura) {
// Lugar donde se guardarán los thumbnails respecto a la carpeta donde está la imagen "grande".
$dir_thumb = "tmb/";
// Prefijo que se añadirá al nombre del thumbnail. Ejemplo: si la imagen grande fuera "imagen1.jpg",
// el thumbnail se llamaría "tn_imagen1.jpg"
$camino_nombre=explode("/",$imagen);
// Aquí tendremos el nombre de la imagen.
$nombre=end($camino_nombre);
// Aquí la ruta especificada para buscar la imagen.
$camino=substr($imagen,0,strlen($imagen)-strlen($nombre));
// Intentamos crear el directorio de thumbnails, si no existiera previamente.
//if (!file_exists($camino.$dir_thumb))
//mkdir ($camino.$dir_thumb, 0777) or die("No se ha podido crear el directorio $dir_thumb");
// Aquí comprovamos que la imagen que queremos crear no exista previamente
if (!file_exists($camino.$dir_thumb.$nombre)) {
echo $camino.$dir_thumb.$nombre." NO existía<br>";
$img = imagecreatefromjpeg($camino.$nombre) or die("No se encuentra la imagen $camino$nombre<br>");
// miramos el tamaño de la imagen original...
$datos = getimagesize($camino.$nombre) or die("Problemas con $camino$nombre<br>n");
// intentamos escalar la imagen original a la medida que nos interesa
$ratio = ($datos[0] / $anchura);
$altura = round($datos[1] / $ratio);
// esta será la nueva imagen reescalada
//$x_cropw = $datos[0] + 100;
if($altura>67){
$altura = 67;
}
$thumb = imagecreatetruecolor($anchura,$altura);
//$y_cropw = $datos[1] + 67;
// con esta función la reescalamos
imagecopyresampled ($thumb, $img, 0, 0, 0, 0, $anchura, $altura, $datos[0], $datos[1]);
// voilà la salvamos con el nombre y en el lugar que nos interesa.
imagejpeg($thumb,$camino.$dir_thumb.$nombre,100);
}
}