Subir archivo de imagen: ¿es posible la compresión en el lado del cliente?

9

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.

Chris
fuente
El ¿Es posible optimizar / reducir las imágenes antes de subir? La pregunta en StackOverflow presenta varias soluciones posibles.
danlefree

Respuestas:

4

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).

Kris Erickson
fuente
2

Puede cargar la imagen en un elemento de lienzo, cambiar su tamaño y luego recuperar la imagen para cargarla.

ZippyV
fuente
Para saber cómo hacerlo, consulte stackoverflow.com/questions/923885/…
Ilmari Karonen el
2

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!

brunobar79
fuente