¿Hay alguna manera de evitar que PHP GD image library se quede sin memoria? Si se carga una imagen demasiado grande, GD tiende a quedarse sin memoria, terminando el script. Me gustaría arrojar una excepción atrapable o algo así, pero no es así.¿Una forma segura de evitar que la biblioteca de imágenes GD se quede sin memoria? (PHP)
En este momento estoy usando un script improvisado que primero emite un ini_set('memory_limit', '128M')
, si eso funciona, generalmente estoy listo. Dependiendo de la configuración del servidor, eso puede no ser posible, así que estoy recurriendo a un algoritmo que intenta estimar la cantidad de memoria necesaria (teniendo en cuenta la resolución, la profundidad de color, los canales y un factor de caramelo), y luego lo compara con memory_get_usage()
si la función existe, de lo contrario hace una estimación aproximada.
Todo funciona hasta ahora, pero está lejos de ser elegante y fallará en algunos casos extremos, estoy seguro. ¿Hay alguna forma mejor de hacerlo, es decir, si GD falla correctamente si es necesario, en lugar de detenerlo todo?
imágenes JPEG grandes (no-PNG u otros tipos) puede cambiar el tamaño, mientras que la carga, consulte esta respuesta para más detalles: http://stackoverflow.com/questions/12661/efficient-jpeg-image-resizing- in-php/4613341 # 4613341 –