2

Chrome Browser v. 24で次を呼び出すと

brush(x,y,w,h)

コンソールは、

DOM 例外エラー 9

この行で:

var imageData = cvs.createImageData(w,h);

また、指示どおりに値をsetPixel()変更する必要がありますが、私のブラウザでは透明に見えます。は透明な w * h の正方形を作成しますが、これは私がやりたいことではありません。r,g,b,aimageData.databrush(...)

function setPixel(imageData, x, y, r, g, b, a) {
    index = (x + y * imageData.width) * 4;
    imageData.data[index+0] = r;
    imageData.data[index+1] = g;
    imageData.data[index+2] = b;
    imageData.data[index+3] = a;
}

function brush(x, y, w, h) {
        var canvas = document.getElementById('maincanvas');
        var cvs = canvas.getContext('2d');
        var imageData = cvs.createImageData(w,h);
        var r = 0;
        var g = 0;
        var b = 0;

        setPixel(imageData, x, y , r, g, b, 255);
        cvs.putImageData(imageData, x, y);
}

私の質問: への例外以外に、出力が透過的である別の理由はありcreateImageDataますか?

4

2 に答える 2

1

console.log()引数をにログ記録 () してみてくださいcreateImageDataNOT_SUPPORTED_ERR: DOM Exception 9この関数は、最初の引数がNaNorの場合にスローされるようですInfinity(おそらく他の場合も同様です)。

于 2013-02-09T08:28:30.820 に答える
0

以下のページより引用

「キャンバスにスタイリング ルールが適用されていない場合、最初は完全に透明になります。」

https://developer.mozilla.org/en-US/docs/HTML/Canvas/Tutorial/Basic_usage?redirectlocale=en-US&redirectslug=Canvas_tutorial%2FBasic_usage

于 2013-03-14T15:06:49.847 に答える