簡體   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