web-dev-qa-db-ja.com

画像ファイルのアップロード:クライアント側での圧縮はすでに可能ですか?

写真ファイルのアップロードを提供する場合、通常、ユーザーはカメラまたは携帯電話からの圧縮率の低い巨大な(10メガピクセル以上)JPEGファイルを持っています。サーバー側では、これらのファイルは800x600pxやJPEG品質7または8などに再圧縮されます。

クライアント側でその再圧縮を行うことは(すでに)可能ですか?そのため、送信する必要があるのは100 MB(800x600px)だけで、3 MB以上は送信しません。何かのようなもの:

(1)javascriptの新しいFileSystem API( http://slides.html5rocks.com/#filewriter )を使用すると、写真ファイルのデータをクライアント側JSに読み込むことができます。

(2)その後、JPEGデータを再エンコードする必要がありますが、これは可能ですが、そのためのライブラリはまだ見つかりません(まだ)。誰もがそのようなライブラリを知っていますか?

(3)最後のステップは、POST再圧縮されたJPEGデータをサーバー側に保管して保管し、保管された写真ファイルへのURLをサーバーから取得してクライアントのHTMLに含めることです。

これを行うjQueryプラグイン、他のJSライブラリ、またはサンプルWebページを探しています。

9
Chris

Plupload 画像のhtml5サイズ変更をサポートしてからアップロードします。また、サポートされていないブラウザのフォールバックもあります(IE咳咳) 、Silverlight(およびGoogle GearsやBrowserPlusなどの時代遅れのもの)。

4
Kris Erickson

このデモをご覧ください: http://makeitsolutions.com/labs/jic

この問題を解決するのは私が作成したjavascriptライブラリです。

クライアント側でjpgとpngをJavaScriptで100%圧縮でき、外部ライブラリは不要です。

2
brunobar79

画像をキャンバス要素にロードし、サイズを変更してから画像を取得してアップロードできます。

2
ZippyV