Foros del Web » Programando para Internet » PHP »

Image Resizer

Estas en el tema de Image Resizer en el foro de PHP en Foros del Web. Saludos foro, tengo un problemilla que no eh encontrado como resolver.. es esta funcion que hice basada en otras, la imagen de tamaño real esta ...
  #1 (permalink)  
Antiguo 15/07/2008, 15:13
Avatar de marlonbtx  
Fecha de Ingreso: febrero-2006
Ubicación: Tijuana,B.C. Mexico
Mensajes: 151
Antigüedad: 18 años, 2 meses
Puntos: 2
Image Resizer

Saludos foro, tengo un problemilla que no eh encontrado como resolver..
es esta funcion que hice basada en otras, la imagen de tamaño real esta en la Base de Datos y cuando quiero imprimir el thumb me sale en blanco pero no enlace roto.. en el firebug parece que se queda Loading...., las imagenes a reducir no son muy grandes

Código PHP:
        function imageResizer($file$newWidth$newHeight)
    {
        
$image = @imagecreatefromjpeg ($file) or
        
$image = @imagecreatefrompng ($file) or 
        
$image = @imagecreatefromgif ($file) or 
        
$image false;
        
        if(!
$image)
        {
            
$size getimagesize($image);
            
$quality = @imagecreatetruecolor ($newWidth$newHeight);
            
imagecopyresized ($quality$image0000$newWidth$newHeight$size[0], $size[1]);
        }
        
//imagejpeg ($quality, $file, 100); 
        
return imagejpeg($quality$file);
    }
    
    function 
download($id
    {
           
Configure::write('debug'0);
        
$file $this->MyFile->findById($id);
          
header('Content-type: ' $file['MyFile']['type']);
        
header('Content-length: ' $file['MyFile']['size']);
        
header('Content-Disposition: attachment; filename="'.$file['MyFile']['name'].'”');
        
//echo  $this->imageResizer($file['MyFile']['data'],300,500);
        
echo $this->imageResizer($file['MyFile']['data'],300,500);
        exit();
    } 
alguien que ya paso por esto tiene idea que tengo mal?

Última edición por marlonbtx; 15/07/2008 a las 18:24
  #2 (permalink)  
Antiguo 15/07/2008, 15:31
 
Fecha de Ingreso: junio-2008
Mensajes: 31
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Image Resizer

hola marlon, mira la verdad que asi veo varios errores ( pero en realidad no conosco la totalidad del cogido ) pero la posible causa es que en la linea


$quality = @imagecreatetruecolor ($width, $height);

en imageResizer $width y $height tienen valor 0, te esta creando una imagen de tamaño 0.

creo que seria

$quality = @imagecreatetruecolor ( $newWidth , $newHeight );

por favor corregime si me equivoco
  #3 (permalink)  
Antiguo 15/07/2008, 18:29
Avatar de marlonbtx  
Fecha de Ingreso: febrero-2006
Ubicación: Tijuana,B.C. Mexico
Mensajes: 151
Antigüedad: 18 años, 2 meses
Puntos: 2
Respuesta: Image Resizer

si ya lo corregui, pero sigo teniendo el problema.. , este es todo el codigo lo tengo dentro de una clase, las imagenes ya se mostraban antes pero las reduci con html.. entonces como estoy usando MVC con cakePHP , mando llamar la imagen asi en la vista

Código PHP:
echo "  <img src='/my_files/download/" $file['FilesProduct']['my_file_id'] . "' width='128' height='96' /></img>"

entonces el request se hace asi

http://tjnix.sytes.net/my_files/download/3

como te digo antes ya funcionaba pero sin redimensionar las ventanas osea que tenia este codigo nadamas

Código PHP:
    function download($id
    {
           
Configure::write('debug'0);
        
$file $this->MyFile->findById($id);
          
header('Content-type: ' $file['MyFile']['type']);
        
header('Content-length: ' $file['MyFile']['size']);
        
header('Content-Disposition: attachment; filename="'.$file['MyFile']['name'].'”');
        echo 
$file['MyFile']['data'];
        exit();
    } 

entonces en el request te traia la imagen pero del tamaño original
  #4 (permalink)  
Antiguo 15/07/2008, 19:28
 
Fecha de Ingreso: junio-2008
Mensajes: 31
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Image Resizer

estas teniendo problemas con la forma del return en la funcion

asi te funciona bien:

Código PHP:

$file
="moving.jpg";
$info getimagesize($file);

$newWidth=150;

$newHeight=150;

    switch( 
$info['mime'] )
        {
            case 
'image/png': case 'image/x-png'
                
$image imagecreatefrompng$file );
            break;
            case 
'image/jpg': case 'image/jpeg': case 'image/pjpeg':
                
$image imagecreatefromjpeg $file );// echo "OK";
            
break;
            case 
'image/gif' 
                
$image imagecreatefromgif$file );
            break;
        default: return( array( 
false "FileType Desconocido" ) ); break;
        }
    
$size getimagesize($file);
    
$quality imagecreatetruecolor ($newWidth$newHeight);
    
imagecopyresampled$quality$image0000$newWidth$newHeight$size[0], $size[1]);
    
header("content-type: image/jpeg");imagejpeg($quality); 
  #5 (permalink)  
Antiguo 16/07/2008, 19:25
 
Fecha de Ingreso: julio-2008
Mensajes: 85
Antigüedad: 15 años, 9 meses
Puntos: 2
Respuesta: Image Resizer

Tendría que ser if ($image), en vez de if (!$image)
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:34.