Ver Mensaje Individual
  #2 (permalink)  
Antiguo 14/06/2007, 06:36
Avatar de jerkan
jerkan
 
Fecha de Ingreso: septiembre-2005
Mensajes: 1.607
Antigüedad: 18 años, 7 meses
Puntos: 19
Re: Generar thumbnails

Mira a ver si esto te sirve. Un saludo.
Código PHP:
    // genera un identificador de imagen a partir de un fichero de imagen
    // Devuelve el identificador o false en caso de error
    
        
function imagecreatefromfile($imagefile)
        {
        
// variable resultado
        
            
$resultado false;
            
        
// Obtener extensión del archivo 
            
$dot = (strlen($imagefile) - strrpos($imagefile".")-1)*(-1);
        
            
$ext substr($imagefile$dot);
            
$ext strtolower($ext);    
                
        
// Chequear que las imágenes sean de alguno de los formatos soportados. Por medio de la función strtolower(), pasamos la extensión a minúsculas
            
            
if( $ext == "gif") {
                if (
$src_img imagecreatefromgif($imagefile)) {
                    
$resultado $src_img;
                }
            } else if( 
$ext == "jpg" || $ext == "jpeg") {
                if (
$src_img imagecreatefromjpeg($imagefile)) {
                    
$resultado $src_img;
                }
            } else if( 
$ext == "png") {
                if (
$src_img imagecreatefrompng($imagefile)) {
                    
$resultado $src_img;
                }
            } else if( 
$ext == "jpg" || $ext == "jpeg") {
                if (
$src_img imagecreatefromjpeg($imagefile)) {
                    
$resultado $src_img;
                }
             }
            
            return 
$resultado;            
        }
        
        
    
// genera una imagen thumbnail a partir de otra
    
        
function generate_thumbnail($imagefile$ancho$calidad 100)
        {
        
// leemos el fichero de la imagen
        
            
if( ($src_img imagecreatefromfile($imagefile)) == false )
            {
                exit;
            }
            else
            {
                
$hw getimagesize($imagefile);
                
            
// $ancho es el ancho para la nueva imágen
                
$new_w $ancho;
                
            
// A través del cociente entre el alto y el cociente entre la anchura original y la anchura nueva, mantenemos las proporciones de la imágen
                
$new_h $hw["0"]/($hw["1"]/$ancho);
            
            
// Intentamos crear una imágen 'true color'. Esta función es soportada a partir de GD 2.0, por lo que en caso de no funcionar, se usará la función imageCreate
    
                
$dst_img = @imagecreatetruecolor($new_h$new_w);
                if(!
$dst_img) {
                  
$dst_img imageCreate($new_h$new_w);
                }
                
            
// Se crea la imágen con los valores obtenidos y borramos las imágenes de la memoria
                
imagecopyresampled($dst_img,$src_img,0,0,0,0,$new_h,$new_w,imagesx($src_img),imagesy($src_img));
                
imagejpeg($dst_img,""$calidad);
                
ImageDestroy($src_img);
                
ImageDestroy($dst_img); 
            }
        }
        
        
$file "ace3.jpg";
        
        
//echo("<img src=\"$file\" height=\"300\" width=\"200\"/>");
        
header("Content-type: image/jpeg");
        
generate_thumbnail($file100);