Carregar arquivo de imagem: a compactação no lado do cliente já é possível?

9

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.

Chris
fonte
O É possível otimizar / diminuir imagens antes de enviar? A pergunta no StackOverflow apresenta várias soluções possíveis.
danlefree

Respostas:

4

O Plupload suporta redimensionamento html5 de imagens e, em seguida, carrega -as, além de recursos para navegadores não suportados ( tosse para IE ) no Flash, Silverlight (e coisas antiquadas como Google Gears e BrowserPlus).

Kris Erickson
fonte
2

Você pode carregar a imagem em um elemento da tela, redimensioná-la e depois recuperar a imagem para carregá-la.

ZippyV
fonte
Para saber como fazer isso, consulte stackoverflow.com/questions/923885/…
Ilmari Karonen
2

Confira esta demonstração: http://makeitsolutions.com/labs/jic

É uma biblioteca javascript criada por mim que resolve esse problema.

Ele permite que você comprima jpg e png no lado do cliente 100% com javascript e nenhuma biblioteca externa necessária!

brunobar79
fonte