前提
OS:Windows10(64bit)
ブラウザ:Firefox,Chrome
実行環境:ローカル
実現したいこと
やりたいことはシンプルで、タイトルのとおりです。
読み込んだ画像を2値変換したいです。
発生している問題・エラーメッセージ
変換されず、カラーのままの画像がそのまま出力される。
該当のソースコード
html
1<div id="container"></div> 2 3<script type="text/javascript"> 4 5 var cvs = document.createElement("canvas"); 6 cvs.width = 500; 7 cvs.height = 500; 8 9 document.getElementById('container').appendChild(cvs); 10 var ctx = cvs.getContext("2d"); 11 var img = document.createElement("img"); 12 13 function onLoad() { 14 ctx.drawImage(img, 0, 0); 15 var imagedata = ctx.getImageData(0, 0, 500, 500); 16 17 for (var y = 0, i = 0; y < 500; y++) { 18 for (var x = 0; x < 500; x++, i += 4) { 19 var value = (imagedata.data[i] + imagedata.data[i + 1] + imagedata.data[i + 2]) / 3; 20 imagedata.data[i] = imagedata.data[i + 1] = imagedata.data[i + 2] = value; 21 } 22 } 23 24 ctx.putImageData(imagedata, 0, 0); 25 } 26 27 img.addEventListener("load", onLoad, false); 28 img.src = "man.png"; 29</script>
試したこと
ブラウザが問題かもしれないと思い、念のため別のブラウザでも試したが同じ結果となった。