Ver Mensaje Individual
  #1 (permalink)  
Antiguo 01/12/2008, 09:58
xamamo
 
Fecha de Ingreso: septiembre-2007
Mensajes: 106
Antigüedad: 16 años, 7 meses
Puntos: 1
Recortar imagen y crear thumbnail

Hola a todos, a ver, tengo una función que crea thumbnais y funciona muy bien, es esta:
Código PHP:
<?php
    
function crear_thumbjpeg($carpeta,$Nombre_imagen,$anchura1,$anchura2)
{
    
$extension substr($Nombre_imagen,(strlen($Nombre_imagen)-3),3);
    if(
$extension == "jpg" or $extension == "JPG")
        
$tipo_img "jpeg";
    else if(
$extension == "gif" or $extension == "GIF")
        
$tipo_img "gif";
    
$tamaños = array($anchura1$anchura2);
    foreach (
$tamaños as $anchura)
    {
        if(
$Nombre_imagen)
        {
            
$Ruta_Imagen_Mini "images/thumbs/tn_".$anchura."_".$Nombre_imagen;
            
$imagen $Nombre_imagen;
            
$camino $carpeta."/";
            if(!
file_exists($Ruta_Imagen_Mini)and file_exists($camino.$imagen))
            {
                try
                {
                if(
$tipo_img == "jpeg")
                    
$img imagecreatefromjpeg($camino.$Nombre_imagen) or die("No se encuentra la imagen $camino.$nombre<br>n");
                elseif(
$tipo_img=="gif")
                    
$img imagecreatefromgif($camino.$Nombre_imagen) or die("No se encuentra la imagen $camino.$nombre<br>n");                            // miramos el tamaño de la imagen original...
                
$datos getimagesize($camino.$Nombre_imagen) 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
                
$thumb imagecreatetruecolor($anchura,$altura);
                
// con esta función la reescalamos
                
imagecopyresampled ($thumb$img0000$anchura$altura$datos[0], $datos[1]);
                
// voilà la salvamos con el nombre y en el lugar que nos interesa.
            //    echo "<br>Rutamini: ".$Ruta_Imagen_Mini;
                
if($tipo_img == "jpeg")
                    
imagejpeg($thumb,$Ruta_Imagen_Mini);
                elseif(
$tipo_img=="gif")
                    
imagegif($thumb,$Ruta_Imagen_Mini);
                }
                catch(
Exception $e)
                {
                    
$error "si";
                }
                
//Ruta de la imagen mini con altura1, la que se devuelve para mostrar...
                
$error "images/thumbs/tn_".$anchura1."_".$Nombre_imagen;
            }
            
//si no hay ni mini, ni la grande, no se podrá crear la mini..
            
elseif(!file_exists($Ruta_Imagen_Mini) and !file_exists($camino.$imagen))
            {
                
$error "images/icon_noImagen.jpg";
            }
            elseif(
file_exists($Ruta_Imagen_Mini) and file_exists($camino.$imagen))
            {
                
$error "images/thumbs/tn_".$anchura1."_".$Nombre_imagen;
            }
            elseif(
file_exists($Ruta_Imagen_Mini))
            {
                
$error "images/thumbs/tn_".$anchura1."_".$Nombre_imagen;
            }                
        }
        else
        {
            
$error "images/icon_noImagen.jpg";
        }
    }

    return 
$error;
}
?>
pero ahora lo que quiero y necesito es sacar las thumbnais pero de 89 x 89 y claro, con esta funcion solo saco la anchura, no le puedo especificar la altura ya q esta me la calcula proporcional.
En resumen, me gustaria sacar una thumbnai de 89 x 89 recortando la imagen (o como sea)...
Un saludo y gracias anticipadas.