javascript - 从<IMG>获取二进制图像内容

标签 javascript internet-explorer com

我需要将图像字节内容从 JavaScript 传输到 COM 组件。我将弄清楚 COM 部分,但如何获取引用 <IMG> 的二进制图像?

我只需要支持 IE6+。

如果有必要,我可以根据来源重新下载图像。不必使用已经下载的图像。

是否有 downloadToBytes() 函数或类似函数?

最佳答案

我唯一能想到的是使用ajax(重新下载图像)

var src = document.getElementById('theImage').src;

var ajax = new XMLHttpRequest();
ajax.open("GET", src, true);
ajax.responseType = "arraybuffer";

ajax.onload = function () {
    var bAr = new Uint8Array(ajax.response);
    for (var i = 0; i < bAr.length; i++) {  
        //Modify binary?
    }
}

ajax.send();

唯一不好的是,如果图像是外部的,则必须具有跨域权限。或者您可以从没有该限制的内容脚本中执行它(网站页面必须包含在 list 中的权限值中)

关于javascript - 从<IMG>获取二进制图像内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7680385/

相关文章:

javascript - 在javascript中测试2个字符串之间的常用词

正则表达式 : Same character part of two matches

javascript - 如何确定用户在 JavaScript 中运行的 IE 版本?

c# - 从 onchange 触发 .click() 时 IE9 出现 "SCRIPT5 Access is denied"错误

C# + COM,修改参数中的数组

c# - 尝试 COM,C# 默认使用 stdcall 还是必须指定

c# - 在 office 2010 中将受密码保护的 OpenXml Word 文档重新保存为受密码保护的二进制 Word 时显示错误

javascript - 多 Canvas 棋盘游戏与单 Canvas

css - 2个div在IE 11中有大约1px的差距

javascript - 如何在 rails 中使用 webpack 和 bootstrap-sass-loader 加载 Bootstrap