JSFiddle - React, Tailwind, and code Playground
HTML
<div>TARGET IMG (DATA URI) <img id="targetImg" /></div>
JavaScript
var targetImg = document.getElementById("targetImg");
FetchImageAsBlob('data:image/gif;base64,R0lGODdhMAAwAPAAAAAAAP///ywAAAAAMAAw AAAC8IyPqcvt3wCcDkiLc7C0qwyGHhSWpjQu5yqmCYsapyuvUUlvONmOZtfzgFz ByTB10QgxOR0TqBQejhRNzOfkVJ+5YiUqrXF5Y5lKh/DeuNcP5yLWGsEbtLiOSp a/TPg7JpJHxyendzWTBfX0cxOnKPjgBzi4diinWGdkF8kjdfnycQZXZeYGejmJl ZeGl9i2icVqaNVailT6F5iJ90m6mvuTS4OK05M0vDk0Q4XUtwvKOzrcd3iq9uis F81M1OIcR7lEewwcLp7tuNNkM3uNna3F2JQFo97Vriy/Xl4/f1cf5VWzXyym7PH hhx4dbgYKAAA7', function(err, img) {
if (err) {
console.log(err);
return;
}
var canvas = document.createElement('canvas'),
ctx = canvas.getContext('2d');
// init
canvas.width = img.width;
canvas.height = img.height;
// fill with image
ctx.drawImage(img, 0, 0);
var imgDataURI = canvas.toDataURL();
targetImg.src = imgDataURI;
});
function createCORSRequest(method, url) {
var xhr = new XMLHttpRequest();
if ("withCredentials" in xhr) {
// Check if the XMLHttpRequest object has a "withCredentials" property.
// "withCredentials" only exists on XMLHTTPRequest2 objects.
xhr.open(method, url, true);
} else if (typeof XDomainRequest != "undefined") {
// Otherwise, check if XDomainRequest.
// XDomainRequest only exists in IE, and is IE's way of making CORS requests.
xhr = new XDomainRequest();
xhr.open(method, url);
} else {
// Otherwise, CORS is not supported by the browser.
xhr = null;
}
return xhr;
}
function FetchImageAsBlob(url, cb) {
var req = createCORSRequest('GET', url);
req.onload = function() {
var img = new Image();
img.onload = function() {
URL.revokeObjectURL(this.src);
cb(null, img);
};
img.src = URL.createObjectURL(req.response);
};
req.onerror = function(e) {
cb(e);
};
req.responseType = 'blob';
req.send();
}