2012-03-04 98 views
2

是否有可能让说,在画布上放大,每一个5×5块实际上是最终图像的1个像素,你怎么了“画”与彩色存储在一个变量的onclick像素?我测试过的任何代码最终都是笔画,由于某种原因,点击没有任何作用。绘制单个像素W /帆布

回答

3

像这样的东西?

<canvas id="canvas" style="width:100px; height:100px" width="5" height="5"></canvas> 

<script> 

    var canvas = document.getElementById("canvas"); 

    var context = canvas.getContext("2d"); 

    //Background 
    context.fillStyle = "#000"; 
    context.fillRect(0, 0, canvas.width, canvas.height); 



    canvas.addEventListener("click", function(e) { 

     var x = Math.floor(e.x * canvas.width/parseInt(canvas.style.width)); 
     var y = Math.floor(e.y * canvas.height/parseInt(canvas.style.height)); 


     //Zoomed in red 'square' 
     context.fillStyle = "#F00"; 
     context.fillRect(x, y, 1, 1); 

    }, true); 

</script> 

编辑:新增点击功能

演示:http://jsfiddle.net/Cmpde/

+0

对于一些奇怪的原因,这不会对FF10工作,但在IE。 – jmoon 2012-03-04 22:11:39

+0

有什么办法可以完全禁用抗锯齿功能吗? – jmoon 2012-03-04 22:11:46

+0

@jmoon不知道(实际上我不认为你可以),但是你可以制作一个宽度/高度较大的画布(如按比例),并绘制20x20的正方形。至于为什么id不起作用,它可能与我获得鼠标坐标(MouseEvent.x)有关。 – 2012-03-04 22:14:00