繁体   English   中英

画布HTML5的Javascript getImageData

[英]Javascript getImageData for canvas html5

我已经把头发扯了! 我得到了这个工作,以为“我负担不起不保存它的版本”,然后我..破坏了“构建”。

这行myImageData = context.getImageData(0, 0, canvas.width, canvas.height); 似乎打破了这一点,因为警报将在此之前(而不是之后)起作用。

图片本身正在加载。

任何和所有建议都欢迎^ _ ^我已经走到了尽头,很快就会摆脱RSI的困扰。

var myImageData;

var image_var = new Image();
image_var.onload  = function () {
    canvas.width  = image_var.width;
    canvas.height = image_var.height;
    context.drawImage(image_var, 0, 0, image_var.width, image_var.height);
    myImageData   = context.getImageData(0, 0, canvas.width, canvas.height);
    alert('');
}
image_var.src = "example1.jpeg";

将下面的代码添加到您的实际代码中, firefox允许您在本地工作

netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead");

它实际上是做什么的?

脚本调用此函数时,如果签名有效或启用了代码库主体,则可以授予扩展特权。 如果用户以前没有访问过此主体,则对话框将询问用户是否要接受签名的代码。 与Communicator 4.x不同,Mozilla不会显示详细的Java授权对话框,而是显示一个简单的对话框,询问委托人是否可以信任。 用户可以接受或拒绝,并允许他们的选择被浏览器记住。 如第二个示例所示,可能一次要求两个特权,因此仅出现一个对话框。

特权仅在请求功能的范围内被授予。 该范围包括由请求函数调用的任何函数。 当脚本离开请求功能时,特权不再适用。

您可以在这里了解更多信息

这是一个演示 替代文字

我找到了一个解决方案-问题是我试图读取本地文件(即在我的计算机上),这些文件没有与之关联的域名(显然本地ip在此实例中不计)。 为了保护具有在线内容的人的利益安全,W3C +浏览器已做到这一点,因此getImageData()不能在JavaScript所在的服务器外部存储的文件上运行。

不幸的是,它将本地文件视为无域文件,因此显然存在安全限制。 我正在寻找解决此问题的方法(目前查看HTML5中的appCache和websql,可能有结果也可能没有结果)。 我希望Web应用程序的用户不必上载正在使用的资料(因此出于安全原因,他们可以脱机工作)。 任何建议欢迎!

暂无
暂无

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

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