Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在chrome或firefox中获取网页上的图像数据或图像缓存路径?_Javascript_Google Chrome Extension_Firefox Addon - Fatal编程技术网

Javascript 如何在chrome或firefox中获取网页上的图像数据或图像缓存路径?

Javascript 如何在chrome或firefox中获取网页上的图像数据或图像缓存路径?,javascript,google-chrome-extension,firefox-addon,Javascript,Google Chrome Extension,Firefox Addon,我正在做一个插件(插件)上传任何页面上的图像。 我只能获取图像的url,但我想获取图像数据或图像的本地缓存 通过chrome或firefox上的javascript。我通过canvas在扩展中实现了这一点 我创建了两个函数。首先使用“toDataURL()”方法从画布获取图像数据(将当前画布的内容作为图像返回,您可以将其用作另一画布或HTML元素(如img)的源),然后使用此数据获取BLOB对象 function getImageDataURL(url) { var data, canvas,

我正在做一个插件(插件)上传任何页面上的图像。 我只能获取图像的url,但我想获取图像数据或图像的本地缓存


通过chrome或firefox上的javascript。

我通过canvas在扩展中实现了这一点

我创建了两个函数。首先使用“toDataURL()”方法从画布获取图像数据(将当前画布的内容作为图像返回,您可以将其用作另一画布或HTML元素(如img)的源),然后使用此数据获取BLOB对象

function getImageDataURL(url) {
var data, canvas, ctx, blob;
var img = new Image();

img.onload = function() {
    canvas = document.createElement("canvas");
    canvas.width = img.width;
    canvas.height = img.height;

    ctx = canvas.getContext("2d");
    ctx.drawImage(img, 0, 0);

    try {
        data = canvas.toDataURL();
        blob = dataURIToBlob(data);
    } catch(e) {
        // Handle errors here
        alert(e);
    }
};

img.src = url;
};

function dataURIToBlob (dataURI) {
var byteString = atob(dataURI.split(',')[1]);
var mimeString = dataURI.split(',')[0].split(':')[1].split(';')[0];
var ab = [];

for (var i = 0; i < byteString.length; i++) 
    ab.push(byteString.charCodeAt(i)); 

return new Blob([new Uint8Array(ab)], { type: mimeString });
};
函数getImageDataURL(url){ var数据、画布、ctx、blob; var img=新图像(); img.onload=函数(){ canvas=document.createElement(“canvas”); canvas.width=img.width; canvas.height=img.height; ctx=canvas.getContext(“2d”); ctx.drawImage(img,0,0); 试一试{ data=canvas.toDataURL(); blob=dataURIToBlob(数据); }捕获(e){ //在这里处理错误 警报(e); } }; img.src=url; }; 函数dataURIToBlob(dataURI){ var byteString=atob(dataURI.split(',')[1]); var mimeString=dataURI.split(',')[0]。split(':')[1]。split(';')[0]; var ab=[]; for(var i=0;i
在“blob”变量中,我们有一个包含完整图像数据的blob对象。

令人惊讶的答案。我们不得不放弃,因为我们没有回来看这个。