キャンバスを使ってグレースケールの画像を作りたいです。いくつかの例があります。しかし、それは私の最新のChromeとFirefoxに問題があります。驚いたことに、IE9は優れています。それは私のコードの問題ですか?
そしてここに私のコードがあります:
function draw() {
canvas = document.getElementById('canvas')
ctx = canvas.getContext('2d');
image = new Image();
image.src = 'ichiro.jpg';
ctx.drawImage(image, 0, 0);
imgd = ctx.getImageData(0, 0, 480, 400);
for (i=0; i<imgd.data.length; i+=4) {
grays = imgd.data[i]*.3 + imgd.data[i+1]*.6 + imgd.data[i+2]*.1;
imgd.data[i ] = grays; // red
imgd.data[i+1] = grays; // green
imgd.data[i+2] = grays; // blue
}
ctx.putImageData(imgd, 0, 0);
imggray = new Image();
imggray.src = canvas.toDataURL();
imggray.onload = function() {
ctx.drawImage(imggray, 0, 0);
}
}
HTML5とjavascriptは初めてです。だからどんな助けもいただければ幸いです。