2011-02-06 9 views
2

多くのカメラがJPEGとRAW画像にサムネイルを入れています。 いくつかの画像を自動読み込みしてサムネイルのみを表示したい場合や、サムネイル部分のみを自動読み込みして高速化したい場合があります。Javascriptを使用してJPEGからサムネイルを抽出しますか?

Javascriptでこれを行う方法はありますか?

ありがとうございました。

+0

「オートロード」とはどういう意味ですか?また、ブラウザやスタンドアロンのプログラム/プロセスでこれを行いたいのですか? (JavaScript!=ブラウザなので、私は質問しています;あなたがNodeJSまたはAdobe AIRを使用していた場合、それを言いたいと思います...) –

+0

自動ロードとは、ページがレンダリングされる前にサムネイルをロードすることです。これはブラウザで行われます。 – user577877

答えて

3

あなたは、ブラウザでこれを行うにしたいと述べてきたので、あなたが言うとき:

...または、いっその自動ロードの速度のための唯一のサムネイル部分を。

サムネイルを作成する前に、まずイメージ全体をダウンロードする必要があるため、このクライアント側ではスピードを上げることはできません。

あなただけimg要素を作成し、より小さなものにそのwidthheightを設定することにより、検索された画像のサムネイルをを作成することができます。ブラウザがデフォルトで行うことは、イメージを縮小することです(必ずしもきれいではありません)。

例:私は、彼らがすべてのなら、それは頻繁にサムネイルと、それは便利です(一定の幅と高さに画像にapprpropriateだと仮定しましたあり

var img = document.createElement('img'); 
img.src = "your image url here"; 
img.style.width = "32px";  // Change as appropriate 
img.style.height = "32px";  // Change as appropriate 
document.body.appendChild(img); // Or append to some other container element 

Live copy

同じサイズですが、上記はアスペクト比が混乱します)。

%(25%)でサイズを変更したい場合は、それを行うことはできますが、もっと複雑です:画像を作成し、画面外に読み込む必要があります(これはさまざまな方法があります)。負荷が完了するのを待ってから、計算を実行します。


サーバーを実行している場合は、画像を前処理してサムネイルを作成することができます。たとえば、ImageMagickは、そのサーバー側で役に立ちます。

+1

さて、私は主にCのコーダーだから、スピードのためにJPEGの中にあるサムネイルだけを取り出すと言うと、JPEGヘッダを読み込んでファイルから読み込み、ソケットから読み込んでアクセスする*既存のサムネイルのみ*。 (大部分の人は、これらのカメラがカメラによって生成されていることを知りません)。このアプローチは、特に大規模なJPEGの場合、ネットワークトラフィックを削減する可能性があります。しかし、私はJavascriptにはあまりにも厳しいものがあると思う。 – user577877

+0

@user:これはC対JavaScriptのことではなく、ブラウザによって環境に公開されるプロトコルのレベルです。私は、スクリプト単位で範囲単位のコントロール(http://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html#sec3.12)を公開するブラウザーは認識していません。 JPEGヘッダーを読み込んで、画像全体をダウンロードせずにEXIFサムネイル情報を抽出する場合は、これが必要です。ここでも、サーバー側で最も処理が良好です。 –

関連する問題