Ir al contenido principal

Una web de compresión de imágenes con Javascript

compressor geeky theory lenna
Siempre me ha gustado el tema de la compresión de datos. En mi Trabajo de Fin de Grado realicé la implementación de un algoritmo de compresión de imágenes sobre Android y me encantó hacerlo. Por otra parte, como muchos de vosotros sabéis en Geeky Theory siempre nos gusta hacer proyectos pequeños y no tan pequeños para luego publicarlos aquí y que todos podamos aprender de ellos y mejorarlos. Siempre se puede mejorar.
En cualquier blog es muy importante el tiempo de carga y la optimización de los recursos, como por ejemplo de imágenes. Debido a esto me propuse realizar unapágina web en la que pudiera comprimir las imágenes a mi gusto, pero con una condición: que la compresión la realizara el cliente y las imágenes no pasaran por ningún servidor. La compresión por parte del cliente se realizaría con códigoJavascript y no habría código backend de ningún tipo, ahorrando así el máximo de recursos.

Requisitos

La página web debía cumplir los siguientes requisitos:
  • Compresión de datos en el cliente.
  • El usuario debe poder fijar la calidad de la imagen.
  • El usuario debe poder comparar la imagen comprimida con la original.
  • El usuario debe poder descargar la imagen comprimida.
Una vez establecidos los requisitos, era hora de ponerse a trabajar.

Librerías utilizadas

Si hay algo que tiene Javascript son librerías. Gracias a esto agilicé mucho el desarrollo porque ya había bastantes cosas hechas, pero yo quería unirlas todas para hacer una página decente.
jRange
La librería jRange la he utilizado para implementar el selector de la calidad de la imagen. Es muy fácil de utilizar y yo le he hecho unas cuantas modificaciones, sobre todo de diseño, para que cuadrara con el aspecto de la página.
Imagen Comparison Slider
Esta librería la he utilizado para comparar la imagen comprimida con la original.
J-I-C (Javascript Image Compressor)
He utilizado esta librería porque ya estaba hecha y tampoco es necesario reinventar la rueda. Su función es la de comprimir las imágenes y la verdad es que son muy pocas líneas de código nada complicadas. En un futuro la quitaré para cambiarla por otra que implemente yo y tener una dependencia menos.

Cosas que faltan por implementar

Hay una buena lista de cosas que quiero añadir a la web:
  • Compresión PNG: ahora mismo se pueden cargar archivos PNG, pero la librería J-I-C realiza mal la compresión. Se arreglará cuando implemente la mía propia.
  • Mostrar los resultados de la compresión: ahora mismo no se ven en la propia página los datos resultantes de la compresión y únicamente se pueden comprobar al descargar la imagen y ver su peso. Esto es muy importante y será el siguiente paso.
  • Menú: un pequeño menú para navegar entre páginas.

 Colaborar con el proyecto

El código del proyecto está publicado en Github y sois libres de colaborar y ayudarme a desarrollarlo. Tardé unas pocas horas en hacer lo que está ahora, así que lo que está en la lista de TO-DO no debería ser muy complicado.

Comentarios

Entradas más populares de este blog

Sailfish OS certificado como alternativa a Android en Rusia

Los finlandeses de  Jolla  están de enhorabuena, especialmente si recordamos que no hace mucho estaban casi en la bancarrota, tras embarcarse en una aventura algo arriesgada para la fabricación de tablets. Ahora la vida les sonríe: las autoridades rusas  han certificado  el  sistema operativo Sailfish OS  para su uso por parte del gobierno y corporaciones del país. Se trata de un sistema con base open source ( Linux ), pero con una  capa privativa  presente en algunos de sus componentes como puede ser la interfaz o determinadas aplicaciones. La gran ventaja de Sailfish respecto a otros competidores en el mercado del smartphone –como el ya desaparecido  Firefox OS  o  Ubuntu –, es su  compatibilidad con las aplicaciones de Android. Las intenciones de Rusia es  reducir el uso de sistemas operativos extranjeros  (Android, iOS) en móviles del 95% actual  a la mitad en 2025 . Disminuir la  dependen...

Selfies en 3D llegan a Venezuela y hasta las podrás imprimir en plástico

La empresa 3DUP lanzó al mercado venezolano las líneas de impresoras 3D,  Cube3  y CubePro  de 3D Systems Corporation, a través de las cuales se podrán imprimir modelos, diseños o escaneos en 3D. De igual manera, también está disponible el servicio de selfie3D y el servicio de modelado 3D. La impresora Cube3 tiene dos cabezales de impresión y es única en su clase, posee una amplia combinación de materiales ABS, PLA y una variedad de 18 colores. Es el equipo más fácil de utilizar en el mercado y tiene un software de construcción apto para Windows y Mac; además cuenta con conexión wifi. La nueva CubePro, impresora 3D de calidad profesional ofrece el mayor volumen de impresión entre las impresoras de su clase, sus versiones cuentan con uno, dos o tres cabezales de impresión. Además, posee una amplia combinación de materiales ABS, PLA y Nylon con una variedad de 25 colores, cuenta con una cámara calefaccionada y cerrada para optimizar los trabajos de impresión 3D. P...

Google Photos se independiza de Google+

En las primeras capturas publicadas por Android Police nos podemos hacer una idea de todo lo que se podrá hacer con Google Fotos. Lo más importante es que se confirma que será la misma aplicación de fotos que intenta convencerte cada dos por tres que hagas una copia de seguridad en Google+. En esta actualización se muestra el interés de Google para que uses Google Fotos para almacenar todas tus fotos de forma ilimitada y sin coste. Google Fotos te permitirá almacenar todas tus fotos ilimitadamente y que no afecta a tu espacio de Google Drive/Gmail pero solo si subes la foto en alta resolución. Si eliges subir las imágenes originales mucho más pesadas, estas si que irán en contra de tu capacidad de almacenamiento en tu cuenta de Google.