Created
March 7, 2014 15:24
-
-
Save candycode/f18ae1767b2b0aba568e to your computer and use it in GitHub Desktop.
Create a jpg image from ArrayBuffer data
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Simulate a call to Dropbox or other service that can | |
// return an image as an ArrayBuffer. | |
var xhr = new XMLHttpRequest(); | |
// Use JSFiddle logo as a sample image to avoid complicating | |
// this example with cross-domain issues. | |
xhr.open( "GET", "http://fiddle.jshell.net/img/logo.png", true ); | |
// Ask for the result as an ArrayBuffer. | |
xhr.responseType = "arraybuffer"; | |
xhr.onload = function( e ) { | |
// Obtain a blob: URL for the image data. | |
var arrayBufferView = new Uint8Array( this.response ); | |
var blob = new Blob( [ arrayBufferView ], { type: "image/jpeg" } ); | |
var urlCreator = window.URL || window.webkitURL; | |
var imageUrl = urlCreator.createObjectURL( blob ); | |
var img = document.querySelector( "#photo" ); | |
img.src = imageUrl; | |
}; | |
xhr.send(); |
Thanks a Lot for this, I was wondering about the Int8Array, Uint8Array, Int16Array fetched in the response data object. Is there a difference ?
Thanks man. This really saved me. I have a questions. Why does this example use XMLHttpRequest instead of fetch()? I'm assuming that is because the example was written 9 year ago but maybe there is another reason?
Thanks for this!
Is wrapping this.response
into Uint8Array
necessary? Doc says that ArrayBuffer can also be used as blob part.
Thanks a lot for this
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Thanks a lot!