Al ofrecer la carga de archivos de fotos, generalmente el usuario tendrá archivos JPEG muy comprimidos y enormes (más de 10 megapíxeles) de sus cámaras o teléfonos. En el lado del servidor, estos archivos se volverán a comprimir a algo así como 800x600px y calidad JPEG 7 u 8.
¿Es (ya) posible hacer esa nueva compresión en el lado del cliente? De modo que solo necesitaría transmitir unos 100kB (800x600px) y no 3 MB o más. Algo como:
(1) Con la nueva API FileSystem de javascript ( http://slides.html5rocks.com/#filewriter ) sería posible leer los datos del archivo de la foto en el lado del cliente JS.
(2) Entonces sería necesario volver a codificar los datos JPEG, lo cual es posible, pero no encontraría ninguna biblioteca para eso (todavía). ¿Alguien conoce tal biblioteca?
(3) El último paso sería PUBLICAR los datos JPEG re-comprimidos en el lado del servidor para su almacenamiento y obtener una URL del archivo de fotos almacenado del servidor para incluirlo en el HTML del cliente.
Estoy buscando un complemento de jQuery, otra biblioteca JS o una página web de ejemplo que haga esto.
fuente
Respuestas:
Plupload admite el cambio de tamaño de las imágenes html5 y luego cargarlas , también tiene retrocesos para navegadores no compatibles ( tos de IE ) en Flash, Silverlight (y cosas anticuadas como Google Gears y BrowserPlus).
fuente
Puede cargar la imagen en un elemento de lienzo, cambiar su tamaño y luego recuperar la imagen para cargarla.
fuente
Echa un vistazo a esta demostración: http://makeitsolutions.com/labs/jic
Es una biblioteca javascript creada por mí que resuelve ese problema.
¡Le permite comprimir jpg y png en el lado del cliente al 100% con javascript y no requiere bibliotecas externas!
fuente