Bilddatei hochladen: Ist eine Komprimierung auf der Clientseite bereits möglich?

9

Wenn Sie das Hochladen von Fotodateien anbieten, hat der Benutzer normalerweise schlecht komprimierte und riesige JPEG-Dateien (über 10 Megapixel) von seinen Kameras oder Telefonen. Auf der Serverseite werden diese Dateien auf etwa 800 x 600 Pixel und JPEG-Qualität 7 oder 8 erneut komprimiert.

Ist es (bereits) möglich, diese Neukomprimierung auf der Clientseite durchzuführen? Damit müsste ich nur 100kB (800x600px) und nicht 3 MB oder mehr übertragen. Etwas wie:

(1) Mit der neuen FileSystem-API von Javascript ( http://slides.html5rocks.com/#filewriter ) wäre es möglich, die Daten der Fotodatei in clientseitiges JS einzulesen.

(2) Dann wäre es notwendig, die JPEG-Daten neu zu codieren, was möglich ist, aber ich würde (noch) keine Bibliothek dafür finden. Kennt jemand eine solche Bibliothek?

(3) Der letzte Schritt besteht darin, die erneut komprimierten JPEG-Daten zur Speicherung auf die Serverseite zu POSTEN und eine URL zur gespeicherten Fotodatei vom Server zurückzusenden, um sie in das HTML des Clients aufzunehmen.

Ich suche nach einem jQuery-Plugin, einer anderen JS-Bibliothek oder einer Beispielwebseite, die dies tut.

Chris
quelle
Das ist es möglich , Bilder vor dem Hochladen zu optimieren / verkleinern? Die Frage bei StackOverflow bietet mehrere mögliche Lösungen.
danlefree

Antworten:

4

Plupload unterstützt die HTML55-Größenänderung von Bildern und das anschließende Hochladen. Außerdem gibt es Fallbacks für nicht unterstützte Browser (IE- Husten ) in Flash, Silverlight (und veraltete Inhalte wie Google Gears und BrowserPlus).

Kris Erickson
quelle
2

Sie können das Bild auf ein Canvas-Element laden, die Größe ändern und dann das Bild zurückrufen, um es hochzuladen.

ZippyV
quelle
Informationen
Ilmari Karonen
2

Schauen Sie sich diese Demo an: http://makeitsolutions.com/labs/jic

Es ist eine von mir erstellte Javascript-Bibliothek, die dieses Problem löst.

Sie können JPG und PNG auf der Clientseite zu 100% mit Javascript komprimieren, ohne dass externe Bibliotheken erforderlich sind!

brunobar79
quelle