Actualmente estoy usando ImageMagick para determinar el tamaño de las imágenes cargadas en el sitio web. Al llamar a la "identificación" de ImageMagick en la línea de comandos, se necesitan aproximadamente 0,42 segundos para determinar las dimensiones de 1MB de JPEG junto con el hecho de que es un archivo JPEG. Encuentro eso un poco lento.¿La forma más rápida de determinar la resolución de la imagen y el tipo de archivo en la línea de comandos de PHP o Unix?
El uso de la biblioteca Imagick PHP es aún más lento ya que intenta cargar todo el 1MB en memoria antes de realizar ningún tratamiento a la imagen (en este caso, simplemente determinando su tamaño y tipo).
¿Existen soluciones para acelerar este proceso de determinar qué tipo de archivo y qué dimensiones tiene un archivo de imagen arbitrario? Puedo vivir solo soportando JPEG y PNG. Es importante para mí que el tipo de archivo se determine mirando los encabezados del archivo y no simplemente la extensión.
Editar: La solución puede ser una herramienta de línea de comandos de UNIX llamada por PHP, al igual que la forma en que estoy usando ImageMagick en el momento
Pero, ¿proporciona GD una forma de determinar un tipo de archivo de acuerdo con su contenido (y no su extensión asignada)? También debe medir el tiempo que lleva cargar la imagen en GD también, ya que no estoy haciendo ningún otro proceso que no sea determinar el tamaño del archivo. – Gilles
He agregado la prueba a mi respuesta. No sé si GD carga el archivo de imagen completamente en la memoria o no, ya que no estoy mirando la memoria. Pero estoy atrapando el tiempo completo que tarda el comando en ejecutarse. También getimagesize() también devuelve el tipo de mimo. –
Gracias por todos los esfuerzos, lo he probado en vivo y es de hecho 250 veces más rápido que la solución de enganche. Así que alrededor de 5000 veces más rápido que el método original que estaba usando, no está mal :) – Gilles