Foros del Web » Programando para Internet » PHP »

redimensionar con gd imagenes grandes

Estas en el tema de redimensionar con gd imagenes grandes en el foro de PHP en Foros del Web. Tengo un codigo que encontré hace tiempo en una web para crear miniaturas de imagenes grandes k funciona muy bien hasta k uso imagenes de ...
  #1 (permalink)  
Antiguo 30/07/2007, 05:10
 
Fecha de Ingreso: marzo-2004
Mensajes: 283
Antigüedad: 20 años, 1 mes
Puntos: 2
Tengo un codigo que encontré hace tiempo en una web para crear miniaturas de imagenes grandes k funciona muy bien hasta k uso imagenes de gran tamaño (como de 2000 px de ancho) y en este caso ya no funciona, me da un error de memoria

Fatal error: Allowed memory size of 12582912 bytes exhausted (tried to allocate 8192 bytes)

quiere esto decir que no voy a poder redimensionar imagenes que salgan de una camara digital de ninguna manera? (pork hoy en dia cualkier imagen de camara no baja de los 2000 px de ancho...)

Aqui os dejo el codigo y espero que haya alguna soluccion, tal vez haciendolo de alguna otra manera no use tanta memoria funcione:

Código:
<?php

header("Content-type: image/jpeg");

// Creamos una imagen desde un archivo jpeg 
$img2 = imagecreatefromjpeg("image.jpg");

// Obtenemos la mitad del tamaño de la imagen 
$w1 = intval(imagesx($img2)/2);
$h1 = intval(imagesy($img2)/2);

// Creamos una segunda imagen de la mitad de
// tamaño que el archivo jpeg 
$img1 = imagecreatetruecolor($w1,$h1);

// Escalamos la imagen jpeg sobre la imagen nueva 
imagecopyresized($img1,$img2,0,0,0,0,$w1,$h1,300,200);

// Damos salida a la imagen final 
imagejpeg($img1);

// Destruimos ambas imágenes 
imagedestroy($img2);
imagedestroy($img1);

?>
Muchas gracias por vuestro tiempo

Se me olvido comentaros que tengo dos servidores de compañias diferentes y en ambos me da el mismo error (uno esta en vodahost, compañia americana, y otro cutre k tengo con adivinais? si, aruba.it)

Última edición por GatorV; 30/07/2007 a las 10:16
  #2 (permalink)  
Antiguo 30/07/2007, 10:17
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Re: redimensionar con gd imagenes grandes

El problema es que la memoria que tiene PHP para procesar archivos no es suficiente, necesitas incrementar la memoria en el php.ini, pero como veo que no son tus servidores necesitaras hablar con tu proveedor de servicios para que te incremente la capacidad.

Saludos.
  #3 (permalink)  
Antiguo 30/07/2007, 10:31
 
Fecha de Ingreso: julio-2003
Ubicación: Colombia
Mensajes: 591
Antigüedad: 20 años, 9 meses
Puntos: 7
Re: redimensionar con gd imagenes grandes

Tal cual, en el PHP.ini deberias editar la siguiente linea (si tuvieras tu propio hosting):

Código PHP:
memory_limit 8M      Maximum amount of memory a script may consume (8MB
Por un valor mayor que te permita trabajar esos archivos grandes.

Chaop!
__________________
Visita www.legionlandrover.com
  #4 (permalink)  
Antiguo 31/07/2007, 03:22
 
Fecha de Ingreso: marzo-2004
Mensajes: 283
Antigüedad: 20 años, 1 mes
Puntos: 2
Re: redimensionar con gd imagenes grandes

Y no existe ninguna otra manera de redimensionar una imagen haciendo un uso menor de la memoria? Esk me da k no me van a ampliar esa memoria asi por el morro y no me va a kedar otra k pillar un dedicado con la pasta k cuestan....
  #5 (permalink)  
Antiguo 31/07/2007, 08:36
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Re: redimensionar con gd imagenes grandes

El problema es el mismo tamanio de la imagen, si la imagen fuera mas pequenia no tendrias ese problema, pero por el mismo tamanio sube el peso y necesita mas memoria para procesarla.

Saludos.
  #6 (permalink)  
Antiguo 31/07/2007, 17:00
 
Fecha de Ingreso: marzo-2004
Mensajes: 283
Antigüedad: 20 años, 1 mes
Puntos: 2
Re: redimensionar con gd imagenes grandes

Ya GatorV pero no es exactamente asi, ya k el peso en kbs no importa, lo unico k importa es el tamaño en pixels. Kiero decir k cogiendo una imagen de 2000 px de ancho no la procesa, xo si esa misma imagen la dejo en blanco, es decir k no se vea nada y la guardo su tamaño disminuye hasta casi 10 Kbs porejemplo y aun asi no la procesa, por lo k lo unico k importa son sus dimensiones, me explico?Salu2
  #7 (permalink)  
Antiguo 31/07/2007, 17:04
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Re: redimensionar con gd imagenes grandes

Claro que si lo es, lo que pasa es que a la hora de tu hacer una imagen de 2000 pixeles toda blanca el formato JPG la comprime, pero cuando tu la abres para editar se abre en memoria, porque crees que un PSD de digamos 1 MB, en memoria ocupa mas de 100 MB? Es porque los formatos vienen con compresion y no asi planos, a la hora tu de abrir la imagen es cuando se descomprime en memoria y por ende tu error.

Saludos.
  #8 (permalink)  
Antiguo 01/08/2007, 01:33
 
Fecha de Ingreso: marzo-2004
Mensajes: 283
Antigüedad: 20 años, 1 mes
Puntos: 2
Re: redimensionar con gd imagenes grandes

Anda, k curioso, pues no lo habia pensado. Digamos que una imagen de 2000x1600 en blanco comprimido no ocupa nada, pero k al descomprimirla no dejan de ser 2000x1600=3.200.000 px y k esto en memoria da igual k sean todos blancos o k sea cada uno de un color (como seria en una fotografia) no? Pues muchas gracias, voy a ver si hay suerte y consigo k me amplien la memoria. Cuanto creeis k seria necesario?Salu2!

Última edición por SubZero_mb; 01/08/2007 a las 02:30
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.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 22:31.