web-dev-qa-db-fra.com

Télécharger un fichier image: la compression côté client est-elle déjà possible?

Lorsqu'il propose le téléchargement de fichiers photo, l'utilisateur aura généralement des fichiers JPEG extrêmement compressés et volumineux (plus de 10 mégapixels) à partir de son appareil photo ou de son téléphone. Du côté du serveur, ces fichiers seront recompressés à quelque chose comme 800x600px et qualité JPEG 7 ou 8.

Est-il (déjà) possible de faire cette recompression côté client? Je n'aurais donc besoin que de transmettre environ 100 Ko (800 x 600 pixels) et pas 3 Mo ou plus. Quelque chose comme:

(1) Avec la nouvelle API FileSystem de javascript ( http://slides.html5rocks.com/#filewriter ), il serait possible de lire les données du fichier photo dans JS côté client.

(2) Ensuite, il serait nécessaire de ré-encoder les données JPEG, ce qui est possible, mais je ne peux trouver aucune bibliothèque pour le moment. Quelqu'un connaît une telle bibliothèque?

(3) La dernière étape consisterait à POST les données JPEG recompressées côté serveur en vue de leur stockage et en récupérant une URL du fichier photo stocké à partir du serveur pour inclusion dans le code HTML du client.

Je cherche un plugin jQuery, une autre bibliothèque JS ou un exemple de page Web qui le fait.

9
Chris

Plupload supporte le redimensionnement html5 des images, puis les télécharge. Il présente également des solutions de repli pour les navigateurs non pris en charge (IE tousser ) en Flash. , Silverlight (et des éléments obsolètes tels que Google Gears et BrowserPlus).

4
Kris Erickson

Regardez cette démo: http://makeitsolutions.com/labs/jic

C'est une bibliothèque javascript créée par moi qui résout ce problème.

Il vous permet de compresser jpg et png côté client à 100% avec javascript et aucune bibliothèque externe n'est requise!

2
brunobar79

Vous pouvez charger l'image sur un élément de la toile, la redimensionner, puis récupérer l'image pour la télécharger.

2
ZippyV