我把头发撕掉了!我得到了这个工作,认为'我能负担不起保存这个版本',然后我打破了'构建'。
行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";
答案 0 :(得分:6)
将以下代码添加到您的实际代码中,firefox
允许您在本地工作
netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead");
当脚本调用此函数时,如果签名有效或启用了代码库主体,则可以授予扩展权限。如果用户之前没有访问过此主体,则会出现一个对话框,询问用户是否要接受签名的代码。与Communicator 4.x不同,Mozilla不显示详细的Java授权对话框,而是一个简单的对话框,询问是否可以信任委托人。用户可以接受或拒绝并允许浏览器记住他们的选择。如第二个示例所示,可以同时询问两个权限,因此只显示一个对话框。
仅在请求函数的范围内授予权限。此范围包括请求函数调用的任何函数。当脚本离开请求函数时,特权不再适用。
您可以阅读更多相关信息 here
这是一个演示
答案 1 :(得分:0)
我找到了一个解决方案 - 问题是我试图读取本地文件(即在我的计算机上),这些文件没有与之关联的域名(显然本地IP没有在这个例子中不算数。为了保护在线内容的人们的利益安全,W3C +浏览器已经使得getImageData()不能处理存储在javascript所在服务器之外的文件。
不幸的是,它将本地文件视为无域名,因此安全限制显然适用。我正在寻找解决这个问题的方法(目前在HTML5中查看appCache和websql,可能会或可能不会结果)。我更喜欢我的网络应用程序的用户不必上传他们正在使用的材料(因此他们可以脱机工作,并出于安全原因)。欢迎任何建议!