Foros del Web » Programando para Internet » PHP »

imageCreateFromJPEG no soporta imagenes pesadas

Estas en el tema de imageCreateFromJPEG no soporta imagenes pesadas en el foro de PHP en Foros del Web. buenas estoy utilizando una funcion para hacer un Thumbnail pero cuando le paso imagenes grandes no me funciona por ejemplo una imagen con un peso ...
  #1 (permalink)  
Antiguo 18/04/2008, 14:18
 
Fecha de Ingreso: abril-2005
Mensajes: 351
Antigüedad: 19 años
Puntos: 3
imageCreateFromJPEG no soporta imagenes pesadas

buenas estoy utilizando una funcion para hacer un Thumbnail pero cuando le paso imagenes grandes no me funciona por ejemplo una imagen con un peso de 1.567.015 bytes (1,49 MB) la funcion es esta
Código PHP:
<?php

function makeThumbnail($file$t_ht 100) {
    
$image_info getImageSize($file) ; // see EXIF for faster way

    
switch ($image_info['mime']) {
        case 
'image/gif':
            if (
imagetypes() & IMG_GIF)  { // not the same as IMAGETYPE
                
$o_im imageCreateFromGIF($file) ;
            } else {
                
$ermsg 'GIF images are not supported<br />';
            }
            break;
        case 
'image/jpeg':
            if (
imagetypes() & IMG_JPG)  {
                
$o_im imageCreateFromJPEG($file) ;
            } else {
                
$ermsg 'JPEG images are not supported<br />';
            }
            break;
        case 
'image/png':
            if (
imagetypes() & IMG_PNG)  {
                
$o_im imageCreateFromPNG($file) ;
            } else {
                
$ermsg 'PNG images are not supported<br />';
            }
            break;
        case 
'image/wbmp':
            if (
imagetypes() & IMG_WBMP)  {
                
$o_im imageCreateFromWBMP($file) ;
            } else {
                
$ermsg 'WBMP images are not supported<br />';
            }
            break;
        default:
            
$ermsg $image_info['mime'].' images are not supported<br />';
            break;
    }

    if (!isset(
$ermsg)) {
        
$o_wd imagesx($o_im) ;
        
$o_ht imagesy($o_im) ;
        
// thumbnail width = target * original width / original height
        
$t_wd round($o_wd $t_ht $o_ht) ;

        
$t_im imageCreateTrueColor($t_wd,$t_ht);

        
imageCopyResampled($t_im$o_im0000$t_wd$t_ht$o_wd$o_ht);

        
imageJPEG($t_im);

        
imageDestroy($o_im);
        
imageDestroy($t_im);
    }
    return isset(
$ermsg)?$ermsg:NULL;
}

header("Content-type: image/jpeg");
makeThumbnail($_GET['imagename'], 150);

?>
alguien sabe como puedo solucionarlo o que forma reducir las imagenes en el servidor (creo que este metodo le dicen "al vuelo") para mostrarlas en miniatura.

Saludos
  #2 (permalink)  
Antiguo 19/04/2008, 03:48
 
Fecha de Ingreso: abril-2005
Mensajes: 351
Antigüedad: 19 años
Puntos: 3
Re: imageCreateFromJPEG no soporta imagenes pesadas

puede ser que sera un problema de la vercion del GD?

Saludos
  #3 (permalink)  
Antiguo 19/04/2008, 13:44
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Re: imageCreateFromJPEG no soporta imagenes pesadas

Hola LeandroA,

No es problema de la libreria GD, si no es problema del tamaño de memoria que le asignas a PHP, una imagen de 1.89 MB, debes de asignarle mas o menos unos 256 MB de memoria RAM.

Saludos.
  #4 (permalink)  
Antiguo 19/04/2008, 17:47
 
Fecha de Ingreso: abril-2005
Mensajes: 351
Antigüedad: 19 años
Puntos: 3
Re: imageCreateFromJPEG no soporta imagenes pesadas

Gracias por Responder GatorV, ahora mi idea es crear un album en donde los usuarios suben sus imagenes, pero no quiero limitar el tamaño de la imagen que puedan subir, asi que como podria hacer que se muestre la imagen pequeña, y bien si es un problema de memoria, como se supone en el server en donde alojo mis imagenes pueda asignarle mas memoria a php, bueno la verdad que esto me desiluciona un poco.

Saludos y espero alguna solucion. sigo buscando :)
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 01:19.