Ver Mensaje Individual
  #1 (permalink)  
Antiguo 22/01/2008, 10:29
chefnelone
 
Fecha de Ingreso: diciembre-2005
Ubicación: Barcelona
Mensajes: 1.428
Antigüedad: 18 años, 4 meses
Puntos: 15
Hacer Miniatura con libreria GD?

Hola

Estoy siguiendo este tutorial:
http://www.forosdelweb.com/f18/faqs-...tml#post282620
para generar un Thumbnail (imagen pequeña) en PHP usando GD
Desde la imagen grande en carpeta "images" a imagen pequeña en carpeta "thumbs"

Introduzco 1234.jpg y le doy al submit
... pero me da este error:

1234.jpg // esto lo hago con un echo para estar seguro que el nombre esta bien
No se ha podido crear el directorio .images/thumbs/

el codigo es: index.php

Código:
<?php
if(isset($_POST['submitted'])){

echo $_POST['imagen']."<br/>";//para estar seguro que el nombre está correcto

function thumbjpeg($imagen,$altura) { 
     // Lugar donde se guardarán los thumbnails respecto a la carpeta donde está la imagen "grande". 
     $dir_thumb = "thumbs/"; 
     // 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" 
     $prefijo_thumb = "tn_"; 

     // Aquí tendremos el nombre de la imagen. 
     $nombre=basename($imagen); 
     // Aquí la ruta especificada para buscar la imagen. 
     $camino=dirname($imagen)."http://www.forosdelweb.com/images/"; 

     // 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 ".$camino.$dir_thumb); 

     // Aquí comprovamos que la imagen que queremos crear no exista previamente 
     if (!file_exists($camino.$dir_thumb.$prefijo_thumb.$nombre)) { 
          echo $camino.$dir_thumb.$prefijo_thumb.$nombre." NO existía<br>\n"; 
          $img = @imagecreatefromjpeg($camino.$nombre) or die("No se encuentra la imagen $camino$nombre<br>\n"); 

          // 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[1] / $altura); 
          $anchura = round($datos[0] / $ratio); 

          // esta será la nueva imagen reescalada 
          $thumb = imagecreatetruecolor($anchura,$altura); 

          // 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.$prefijo_thumb.$nombre); 
     } 
} 
$imagen=$_POST['imagen'];
thumbjpeg($imagen, 125);

}//end if submitted
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
<head>
</head>
<body>
<form action="index.php" method="post">
<input name="imagen" type="text">
<input name="submitted" type="hidden">
<input name="enviar" type="submit">
</form>
</body> 
</html>
y como tengo las carpetas y archivos lo pueden ver en este screenshot:



o sea: en la raiz estan: "index.php" y la carpeta "images", y dentro de images esta la imagen "1234.jpg" y la carpeta "thumbs"

Última edición por chefnelone; 22/01/2008 a las 10:47