2010-09-10 25 views
5

Tengo un script de cambio de tamaño que hice en PHP que usa GD (mi VPS no tiene imagemagick instalado) para cambiar el tamaño de una imagen, recientemente comencé a tener errores de memoria así que aumenté el memory_limit hasta 50Mb y todavía recibo un error de memoria .¿Debería GD necesitar tanta memoria al redimensionar?

La imagen que estoy tratando de cambiar de tamaño es de solo 2Mb, es correcto para las imágenes de PHP, algo me suena un poco mal.

+1

Muestra el código ... – hsz

+4

El tamaño de la imagen no tiene sentido para los formatos comprimidos. Cuéntanos * las dimensiones * de la imagen. –

+1

a VPS generalmente significa "puede instalar todo lo que necesita". –

Respuesta

6

Para cambiar el tamaño de la imagen GD tiene que trabajar en la imagen descomprimida, que es significativamente mayor que 2MB, supongo. Imagemagick necesita almacenar toda la información de la imagen (píxeles * bit_depth) y bastante más para el trabajo real en la memoria.

50 megabytes no es mucho para trabajar con imágenes. Por ejemplo, Drupal le advierte si tiene menos de 96 MB de límite de memoria, si tiene el cambio de tamaño de la imagen, etc. habilitado. Para imágenes de un tamaño razonable, 64 MB son suficientes en mi experiencia, pero si coloca imágenes de tamaño completo desde una cámara digital, se encontrará con problemas con ese límite de memoria.

+1

te refieres a 'pixels * bit_depth/8' :-) – TMS

0

En mi alojamiento compartido/en la nube (2.7 £/mes) Todavía no vi ninguna advertencia/error al cambiar el tamaño de las imágenes. Establecí el límite en 200 MB (a veces los usuarios necesitan cargar imágenes muy grandes). Como dijo Fabian, supongo que 50 es demasiado bajo.

Cuestiones relacionadas