繁体   English   中英

如何使用JavaScript访问本地资源?

[英]How to access local resources using JavaScript?

我想访问在网站上时存储在Web浏览器中的本地资源/文件。 我试图为每次使用JS访问站点时加载的图像生成dataURI,并在控制台日志中打印相同的图像。

注意:该图像是从远程服务器上下载的,并不存储在本地。

有什么建议/方法可以做到这一点吗? 有什么方法可以直接从浏览器资源访问.jpeg,.png等?

这是示例网站的代码,我正在尝试

<html>
<head>
    <title>Image_split</title>
</head>
<body>
    <h1>Splitting images within the browser</h1>
    <br><hr><br>
    <img src="https://www.google.co.in/images/srpr/logo11w.png" />
    <br><hr><br>
    <p id="split_result"></p>

    <br><hr><br>

    <script src="image_split.js"></script>
</body>

这是JS

var image_elements = document.getElementsByTagName("img");

var i;
var count=0;
for(i=0;i<image_elements.length; i++){
    count++;
}

var image = image_elements[0];

/*if(count>0){
    document.getElementById("split_result").innerHTML = image_elements[0];
}*/

//The code below does not work :(
/*
var canvas = document.createElement("canvas");
canvas.width = image.width;
canvas.height = image.height;
canvas.getContext("2d").drawImage(image, 100, 100);
document.getElementById("split_result").innerHTML = canvas.toDataURL("image/png");
*/

我想直接从本地缓存访问image_elements [0]中存储的图像,并使用JS对其进行修改。

![链接到图像] https://drive.google.com/file/d/0B7UeFzC7IXYaODN0SWhGZlp2dnc/view?usp=sharing

谢谢 :)

这是在不获取'HTMLCanvasElement'的情况下从Web浏览器资源访问图像的解决方案代码:可能无法导出污染的画布。

var image_elements = document.getElementsByTagName("img");

var i;
var count=0;
for(i=0;i<image_elements.length; i++){
    count++;
}

var image = image_elements[0];

window.addEventListener('load', onDocLoaded, false);
function onDocLoaded(evt){ 
    var canvas = document.createElement("canvas");
    canvas.width = image.width;
    canvas.height = image.height;
    //canvas.getContext("2d").drawImage(image, 0, 0);
    var dataModel = canvas.getContext("2d").getImageData(0, 0, image.width, image.height);
    document.getElementById("split_result").innerHTML = dataModel.data.byteLength;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM