Tengo una aplicación que permite a los usuarios subir imágenes. El caso de prueba que uso es un jpeg de 1.6MB con dimensiones 3872 x 2592px. El script de carga en el back-end va a cambiar el tamaño de la imagen cargada en 6 formatos adicionales:¿Cómo acelerar el cambio de tamaño de la imagen en una aplicación PHP CodeIgniter?
- cuadrada (pequeño 75 x 75)
- pulgar pequeño (50 x 38)
- Pulgar (100 x 76)
- Pequeño (240 x 161)
- Medio (500 x 378)
- grande (1024 x 774)
sé que Es mucho, pero créeme, lo necesito. Hago el cambio de tamaño usando la clase de Manipulación de Imagen de Code Igniter, que usa GD, GD2 o ImageMagick para hacer el cambio de tamaño. Primero lo configuré para usar GD2 y noté que el proceso de redimensionamiento total toma 11 segundos.
Como el usuario tiene que esperar este proceso, no es aceptable. Después de un montón de lectura supe que ImageMagick es una biblioteca mucho más rápido y eficiente manipulación, por lo que me pasa a lo siguiente:
$sourceimage = $data['filedata']['file_path'] . $data['imagedata']['user_id'] . "/" . $imageid . $data['filedata']['file_ext'];
$resize_settings['image_library'] = 'imagemagick';
$resize_settings['library_path'] = '/usr/bin';
$resize_settings['source_image'] = $sourceimage;
$resize_settings['maintain_ratio'] = false;
$resize_settings['quality'] = "100%";
$this->load->library('image_lib', $resize_settings);
Para mi sorpresa, el proceso de cambio de tamaño ahora toma más tiempo: 15 segundos para ser específico.
Al echar un vistazo a mi registro, veo que cada acción de redimensionamiento lleva 2 segundos, sin importar el formato de archivo al que se está redimensionando. Supongo que esto se debe a que siempre cambio el tamaño del original, que es muy grande.
No me gustaría descargar el proceso de redimensionamiento a un proceso programado, porque eso disminuiría la usabilidad del sitio. Significaría que los usuarios tienen que esperar unos minutos antes de poder comenzar a ver/trabajar con la imagen.
Entonces, ¿hay alguna manera inteligente de acelerar drásticamente este proceso de cambio de tamaño para que pueda mantenerlo en tiempo real? Solo aclare: permitir resoluciones más pequeñas no es una opción, este es un sitio de fotografía que estoy construyendo. Además, realmente necesito los seis formatos mencionados.
alguna posibilidad de que nos pudiera proporcionar una imagen JPEG original 1.6MB? –