Foros del Web » Programando para Internet » PHP »

Redimensionar imagenes grandes

Estas en el tema de Redimensionar imagenes grandes en el foro de PHP en Foros del Web. Saludos, tengo un code el cual redimensiona las imagenes para ajustarlas al diseño del form, todo funciona bien pero cuando subo imagenes muy grandes hablemos ...
  #1 (permalink)  
Antiguo 10/10/2012, 18:25
 
Fecha de Ingreso: septiembre-2008
Mensajes: 257
Antigüedad: 15 años, 7 meses
Puntos: 4
Redimensionar imagenes grandes

Saludos, tengo un code el cual redimensiona las imagenes para ajustarlas al diseño del form, todo funciona bien pero cuando subo imagenes muy grandes hablemos del siguiente de las siguientes dimensiones: 3488 x 2616 y un peso de 2.15 mb, entonces ahi me da este error:
Cita:
Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 13952 bytes)
Ya he buscado y probado algunos metodos para redimensionar las imagenes del tamaño mensionado pero nada, me sigue dando el mismo erro, si algquien sabe como puedo hacer para redimensionar les agradeceria su ayuda.

Este es el code que estoy utilizando para redimensionar pero como dije con imagenes pequeñas funciona bien pero con imagenes grandes ya me da error:

Código PHP:
$ruta_imagen "imagene/personal.jpg";

$miniatura_ancho_maximo 200;
$miniatura_alto_maximo 100;

$info_imagen getimagesize($ruta_imagen);
$imagen_ancho $info_imagen[0];
$imagen_alto $info_imagen[1];
$imagen_tipo $info_imagen['mime'];


$proporcion_imagen $imagen_ancho $imagen_alto;
$proporcion_miniatura $miniatura_ancho_maximo $miniatura_alto_maximo;

if ( 
$proporcion_imagen $proporcion_miniatura ){
    
$miniatura_ancho $miniatura_ancho_maximo;
    
$miniatura_alto $miniatura_ancho_maximo $proporcion_imagen;
} else if ( 
$proporcion_imagen $proporcion_miniatura ){
    
$miniatura_ancho $miniatura_ancho_maximo $proporcion_imagen;
    
$miniatura_alto $miniatura_alto_maximo;
} else {
    
$miniatura_ancho $miniatura_ancho_maximo;
    
$miniatura_alto $miniatura_alto_maximo;
}


switch ( 
$imagen_tipo ){
    case 
"image/jpg":
    case 
"image/jpeg":
        
$imagen imagecreatefromjpeg$ruta_imagen );
        break;
    case 
"image/png":
        
$imagen imagecreatefrompng$ruta_imagen );
        break;
    case 
"image/gif":
        
$imagen imagecreatefromgif$ruta_imagen );
        break;
}

$lienzo imagecreatetruecolor$miniatura_ancho$miniatura_alto );

imagecopyresampled($lienzo$imagen0000$miniatura_ancho$miniatura_alto$imagen_ancho$imagen_alto);


imagejpeg($lienzo"fototemporal/miniatura.jpg"80); 
Gracias por su ayuda....
  #2 (permalink)  
Antiguo 10/10/2012, 18:28
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Redimensionar imagenes grandes

Tu problema no se soluciona con código, debes aumentar la memoria disponible para php.

Además el objetivo de php no es el de procesamiento de imágenes, que sea posible no justifica que debas hacerlo en todos los casos.

Intenta hacer uso de librerías especializadas, como Imagick.

O mejor aún, convence a tus usuarios de que no suban imágenes de mas de 1MB.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 11/10/2012, 06:46
 
Fecha de Ingreso: septiembre-2008
Mensajes: 257
Antigüedad: 15 años, 7 meses
Puntos: 4
Respuesta: Redimensionar imagenes grandes

gracias voy a revisar la libreria que mensiona....ya que hay usuarios que no van a entender cuando se les diga que no deben subir imagenes de tal o cual tamaño...
  #4 (permalink)  
Antiguo 11/10/2012, 08:47
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Redimensionar imagenes grandes

Cita:
Iniciado por sheshito Ver Mensaje
gracias voy a revisar la libreria que mensiona....ya que hay usuarios que no van a entender cuando se les diga que no deben subir imagenes de tal o cual tamaño...
Pues claro que no entienden por arte de magia, simplemente hay que indicarles que hay un peso limite antes de subir archivos.

Además también puedes comprobar el tamaño de los archivos al recibirlo y así entonces advertir.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 11/10/2012, 11:48
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 2 meses
Puntos: 288
Respuesta: Redimensionar imagenes grandes

me extraña peteketrueke,
segun el sitio hay limites y limites, por ejemplo en un sitio de prensa donde los fotografos suben una cantidad impresionante de fotos de 10megas cada una no le podes decir que se pongan a bajar el tamaño una por una.

sheshito la finalidad del script es justamente bajar el peso de la imagen,
como tecnica basica, se guarda la imagen original y luego se genera otra copia con peso menor.
la calidad del peso menor la asignas segun el tamaño de la imagen.
ej:
la imagen pesa 2megas, entonces la le bajas la calidad a un cuarto:

imagejpeg($lienzo, "fototemporal/miniatura.jpg", 25);

sabiendo que aun asi se mantedra una buena calidad.
  #6 (permalink)  
Antiguo 11/10/2012, 11:55
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Redimensionar imagenes grandes

No es de extrañar, te explico.

Vamos a pensar que se trata de un sitio de profesionales de la fotografía, eso lo entiendo.

Lo que no entiendo es porque php debe hacer todo, ¿por qué siempre tiene hacer de todo?

No es factible y menos aún si es en el mismo paso, yo lo haría de la siguiente forma.

Subo los archivos, sin procesarlos y guardo en una cola de procesos que dicho lote debe ser reducido, optimizado, etc.

Ahora, con un servicio de fondo y utilizando librerías especializadas para tratar imágenes comienzo a procesar los lotes y actualizar mi base de datos.

De pronto al usuario, en su lista de imágenes, observa que el 20% ya está procesado y disponible para utilizar en el sistema.

Así de simple, experiencia de usuario, no esperes a hacer todo de un solo golpe.

Si el sistema no se preocupa del usuario entonces tiene graves problemas.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #7 (permalink)  
Antiguo 11/10/2012, 15:02
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 2 meses
Puntos: 288
Respuesta: Redimensionar imagenes grandes

es verdad pero por eso te decia que segun el sitio es uno u otro metodo de procesamiento,

Etiquetas: grandes, imagenes, redimensionar
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 04:23.