为给定的X和Y在canavs imageData上设置一个像素
Setting a pixel on a canavs imageData for a given X and Y
我目前正在使用fillRect方法在循环中设置画布上的单个像素,如下所示:
context.fillStyle = "rgba("+colourR+","+colourG+","+colourB+",255)";
context.fillRect( x, y, 1, 1 )
这个方法工作得很好,但是它和putImageData非常慢。因此,我决定尝试在循环中单独设置像素,然后在准备输出到屏幕时使用对putImageData的单个调用,如下所示:
var screenImageData = context.getImageData(0,0,800,600);
var pixelBuffer = screenImageData.data;
pixelBuffer[(x*4) + (y*(screenImageData.width * 4))] = colourR;
pixelBuffer[(x*4) + (y*(screenImageData.width * 4)) + 1] = colourG;
pixelBuffer[(x*4) + (y*(screenImageData.width * 4)) + 2] = colourB;
pixelBuffer[(x*4) + (y*(screenImageData.width * 4)) + 3] = 255;
...
context.putImageData(screenImageData,0,0);
然而,这会为fillRect方法生成一个完全不同的输出(它看起来就像混乱的垃圾)。我哪里做错了?
这里的问题在于计算x和y的方式,显然putImageData会自动将它们转换为整型。使用数学。
相关文章:
- 如何通过溢出来判断元素被切断了多少像素:隐藏在父级上
- 点击facebook像素跟踪注册(JS/JQUERY代码)
- 点击(右键点击)使用传单地图库获取图像覆盖的像素坐标
- 如何使线条的边缘像素保持半透明
- 画布:逐像素绘制图像并请求动画帧计时
- OL3 是否有单击处理程序像素容差设置
- 如何使用WebGL设置画布上像素的颜色
- HTML/javascript 获取(和设置)像素 - 远程图像
- 确定 DIV 的高度以百分比而不是像素设置
- 弹性滑块 IMG 设置为 768 像素及以下的0x0
- 将元素高度/宽度设置为百分比值和像素值的组合
- 使用RaphaelJS将路径缩放为纸张大小或以像素为单位设置路径尺寸
- Chrome扩展:通过编程设置浏览器操作图标,使图标像素化
- 如何设置facebook像素"提交按钮”;跟踪
- 为给定的X和Y在canavs imageData上设置一个像素
- 如何根据图像垂直条设置像素RGB值?(JavaScript)
- 将图像设置为屏幕的百分比,而不是像素
- 如果源设置为透明像素,图像标签背景图像不显示
- 优化 HTML5 画布中像素的设置
- 如何知道如果DIV宽度设置在百分比或像素使用jQuery