12

XMLHttpRequestを介してサーバーからバイナリ形式でjpeg画像を読み込んでいます(そのように必要です)。base64でエンコードされていません。

javascriptでimgオブジェクトに変えることは可能ですか?

ありがとう

4

1 に答える 1

6

の文字エンコーディングがバイナリ データを変更しないものXMLHttpRequestに設定されている場合、または応答タイプを設定している場合は、実行できます( base64 に入れ、データ URI として割り当てることができます) またはそれぞれバイナリデータにアクセスします。.responseTextbtoa.response


インスタンスに名前が付けられており、前にxhrcharsetメソッドを使用していると仮定しますxhr.sendxhr.open

xhr.overrideMimeType("text/plain; charset=x-user-defined");

あなたがいるとき200 OK

var dataURI = 'data:image/jpeg;base64,' + btoa(xhr.responseText);

これは、 のsrcとして設定できます<img>


再び仮定xhrすると、今回は.responseメソッド; ~の間.open.send

xhr.responseType = "arraybuffer";

次に200 OK

var arrayBufferView = new Uint8Array(xhr.response), // can choose 8, 16 or 32 depending on how you save your images
    blob = new Blob([arrayBufferView], {'type': 'image\/jpeg'}),
    objectURL = window.URL.createObjectURL(blob);

これは、 のsrcとして設定できます<img>

于 2012-12-10T20:04:10.153 に答える