5

我把头发扯掉了!我得到了这个工作,认为“我不能不保存这个版本”,然后我..打破了“构建”。

这条线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";
4

2 回答 2

6

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

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

它实际上是做什么的?

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

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

你可以在这里阅读更多关于它的信息

这是一个演示替代文字

于 2010-11-08T17:38:55.690 回答
0

我找到了一个解决方案 - 问题是我试图读取本地文件(即在我的计算机上),这些文件没有与之关联的域名(在这种情况下显然本地 ip 不计算在内)。为了保护具有在线内容的人们的利益安全,W3C + 浏览器已经使 getImageData() 无法处理存储在 javascript 所在服务器之外的文件。

不幸的是,它将本地文件视为无域的,因此显然存在安全限制。我正在寻找解决这个问题的方法(目前正在查看 HTML5 中的 appCache 和 websql,可能会或可能不会结出果实)。我希望我的网络应用程序的用户不必上传他们正在使用的材料(这样他们就可以离线工作,并且出于安全原因)。欢迎任何建议!

于 2010-11-08T14:37:42.483 回答