Bueno, en primer lugar, aunque puede que no sea una tarea pesada para el dispositivo cliente comprimir una imagen, pero no puede ser la mejor práctica para realizar ese tipo de tareas en la parte frontal. Los dispositivos débiles probablemente se bloquearían debido a los límites de memoria, y así sucesivamente.
Pero lo más importante, no puede confiar en un dispositivo cliente para que le diga si la imagen está comprimida o no. Sería simple omitir la compresión y decirle al servidor que la imagen original es la comprimida, especialmente en la web usando herramientas de desarrolladores.
Dado que la mayoría de los dispositivos actuales (iPhones en su mayoría) podrían manejar fácilmente la compresión, tienes un punto. Sería bueno distribuir el servicio de compresión a los clientes, haciendo el trabajo más ligero para el servidor, pero si de repente deciden cambiar el algoritmo de compresión o deshabilitarlo, tendrían que obligar a los clientes a actualizar la aplicación . Además, la biblioteca de compresión haría que la aplicación fuera un poco más grande, y los clientes realmente no lo apreciarían.
- ¿Cuáles son los mejores libros para algoritmos y estructuras de datos en C?
- ¿Cuáles son algunas de las mejores plataformas en línea para practicar la codificación relacionada con algoritmos?
- ¿Para qué sirven las estructuras y algoritmos de datos en el desarrollo de aplicaciones, con ejemplos?
- ¿Qué algoritmos se pueden usar para encontrar un objeto similar en una base de datos que contenga múltiples atributos, numéricos, categóricos y no categóricos?
- ¿Qué es el algoritmo de soporte?
La compresión de imágenes puede requerir algo de potencia de procesamiento, pero le costaría a Instagram mucho más almacenamiento si hubiera una forma de evitar la compresión. A partir de 2016, se suben 80 millones de imágenes por día. Si una imagen es de aproximadamente 1 MB (y podría ser más, ya que se están introduciendo mejores cámaras en cada teléfono nuevo), eso es 80 Terabytes de datos por día. Ahora imagine que si comprimen las imágenes solo en un 20%, les ahorraría 16 TB por día. Y eso es mucho más en términos de dinero, entonces se requiere para procesar esas imágenes.