如何从IMG元素获取图像内容(而不是url)?

时间:2011-08-10 22:48:58

标签: javascript dom browser swt image

我们正在使用Eclipse SWT WebBrowser控件为我们的Java应用程序呈现HTML页面。如果页面包含图像,我们希望获取图像内容。我们可以访问DOM来获取IMG元素,但是除了使用图像URL重新获取图像之外,似乎没有办法获得实际内容(即图像的字节)。 (我们可以通过'src'属性获取图像URL。)有没有办法从DOM获取图像的实际字节?

2 个答案:

答案 0 :(得分:0)

我不确定这是否是您正在寻找的,但基本上您可以只为图像源创建一个类型化的XHR(例如ArrayBuffer)(它应该被缓存,所以这样做没有真正的打击)。我假设您使用的是符合HTML5标准的浏览器(或支持ArrayBuffer或您需要的类型)。我假设文档至少有一个具有适当来源的图像,请参阅Fiddle for working demo。

var img = document.querySelector('img'), xhr = new XMLHttpRequest();
xhr.open('GET', img.src, true);
xhr.responseType = 'arraybuffer';
xhr.addEventListener('load', handleBuffer, false);
xhr.send();
// Your image data ArrayBuffer, feel free to change the type.
function handleBuffer (data) {
   var arryBuffer = data.target.response;
}

Sample Fiddle

答案 1 :(得分:-1)

查看https://developer.mozilla.org/en-US/docs/Web/API/FileReader它将允许您创建base64数据网址,可能无法使用,具体取决于您的浏览器版本。