Ao oferecer o upload de arquivos de fotos, normalmente o usuário terá arquivos JPEG mal compactados e enormes (mais de 10 megapixels) de suas câmeras ou telefones. No lado do servidor, esses arquivos serão compactados novamente para algo como 800x600px e qualidade JPEG 7 ou 8.
É (já) possível fazer essa re-compactação no lado do cliente? Para que eu precisasse transmitir apenas 100kB (800x600px) e não 3 MB ou mais. Algo como:
(1) Com a nova API FileSystem do javascript ( http://slides.html5rocks.com/#filewriter ), seria possível ler os dados do arquivo de foto no JS do lado do cliente.
(2) Então seria necessário recodificar os dados JPEG, o que é possível, mas ainda não encontrei nenhuma biblioteca para isso. Alguém conhece essa biblioteca?
(3) O último passo seria POSTAR os dados JPEG compactados novamente para o lado do servidor para armazenamento e obter um URL para o arquivo de foto armazenado de volta do servidor para inclusão no HTML do cliente.
Eu estou procurando algum plugin jQuery, outra biblioteca JS ou página da web de exemplo que faz isso.