使用Javascript和Canvas从图像中移动一个像素
Use Javascript and Canvas to move a pixel from an image
我对从画布上绘制的图像移动一个像素(最终是所有像素)感兴趣。这是我正在工作的示例代码,我相信它在绘制图像方面做了一些非常标准的东西:
var images = [ // predefined array of used images
'http://distilleryimage6.instagram.com/928c49ec07d411e19896123138142014_7.jpg'
];
var iActiveImage = 0;
$(function(){
// drawing active image
var image = new Image();
image.onload = function () {
ctx.drawImage(image, 0, 0, image.width, image.height); // draw the image on the canvas
}
image.src = images[iActiveImage];
// creating canvas object
canvas = document.getElementById('panel');
ctx = canvas.getContext('2d');
console.log(ctx);
var imageData = ctx.getImageData(200, 150, 1, 1);
var pixel = imageData.data;
});
所以我有这个,但有人能指出我在正确的方向做的事情,如随机选择一个像素从图像和物理移动它在页面上的其他地方?这可能吗?
谢谢
我不确定你的意思是"物理移动它",但你可以使用ctx.putImageData()
在画布内的其他地方应用像素。
var imageData = ctx.getImageData(200, 150, 1, 1);
var pixel = imageData.data;
// You can even get or set the color or alpha of the pixel. (values between 0-255)
var r = pixel[0];
var g = pixel[1];
var b = pixel[2];
var a = pixel[3];
ctx.putImageData(imageData, x, y); // Where x y are the new coordinates.
此外,您应该将所有这些imageData
操作放在onload
函数中,因为在您的示例中,当您调用ctx.getImageData()
时图像仍然未加载,因此您正在操作空白像素。
还请注意,出于安全原因,您不能在从其他域加载的图像上使用getImageData()
。所以我认为你的例子会抛出类型为Uncaught Error: SECURITY_ERR: DOM Exception 18
的异常,因为图像是从Instagram加载的。
我想这个教程可能会对你有所帮助:
https://developer.mozilla.org/en/Canvas_tutorial/Basic_animations相关文章:
- 在Javascript中,检查一个区域中的所有像素是否都为空
- 一个很好的方法来抵消所有绘制到画布上的0.5像素
- 我将如何在一个网页上放置多个Facebook跟踪像素
- 如何从 HTML5 画布中移除每隔一个像素
- 如何在页面加载后使一个部分 100vh 高度变成像素
- 在画布上逐像素手动绘制一个圆
- 触发没有一个像素.gif的javascript事件
- 如何打印其中一个像素的红色、绿色和蓝色值
- 在Gumroad覆盖中添加一个facebook转换像素
- 为给定的X和Y在canavs imageData上设置一个像素
- 如何停止图像在一个特定的像素
- 如何动画的东西到一个固定的像素值?Jquery
- 使用Javascript和Canvas从图像中移动一个像素
- JS - windows的宽度从大于800px的像素减少到800px以下会触发一个动作
- 如何判断一个像素的颜色是否为红色?与jquery()
- 我如何改变一个宽度参数在jQuery给定的像素整数成百分比
- 我可以用一个图像像素调用多个跟踪像素吗
- 为什么谷歌分析使用一个像素的图片来传输数据
- 一个像素填充,用画布
- 使用asp.net MVC在图片上选择一个或多个像素