1

img src をファイルシステムのパスに手動で設定しようとしていますが、その画像をキャンバスに描画したいと考えています。私は使っている:

    var curr_canv = document.getElementById('c_main').getContext('2d');
    var img = new Image();

    img.width = 525;
    img.height = 400;

    img.src = "..\AAAA\BBBB\CCCC\myimage.jpg";

    curr_canv.drawImage(img,0,0);

しかし、これを行った後、キャンバスには何も描画されません。何かご意見は?

4

5 に答える 5

2

Webサーバー内の絶対パスにパスを設定する必要があります。
ブラウザのJavascriptは、どのファイルシステムにもアクセスできません。

于 2012-09-13T19:38:17.587 に答える
1

あなたが使用している

\ 
(backslash) 

それ以外の

/ 
(forward-slash).

JavaScript は\エスケープ文字として使用します。

于 2012-09-13T19:39:24.840 に答える
0

他の人が言ったように、Webサーバーで配信された画像を使用する必要があります。または、「file://」プロトコルを使用します。

非同期タックでの画像のロードは、画像がロードされた後にのみ描画したいので注意してください。

img.onload = function() {
   curr_canv.drawImage(img,0,0);
}

詳細については、MDNを参照してください。

于 2012-09-13T20:08:36.950 に答える
0

はい、パスは Web フォルダーまたは別のアクセス可能なパスにある必要があります。ここでコードが一般的に機能することがわかります:http://jsfiddle.net/pwm36/8/

于 2012-09-13T19:42:40.360 に答える
0

簡単に言えば、「それはできません」です。ブラウザで実行されている Javascript は、ユーザーのファイル システムに直接アクセスできません。これは、一般的なブラウザのセキュリティ機能です。

HTML5 用の比較的新しい FileSystem API がありますが、ブラウザがまだ「投獄されている」ため、おそらく必要なものは得られません。ブラウザによって確保されたディレクトリの外にあるファイルにはアクセスできません。

ドラッグ アンド ドロップ API を検討することもできます。ユーザーは指定した領域にファイルをドロップでき、その時点で Javascript を使用してアクセスできると思います。

于 2012-09-13T19:48:20.107 に答える