功能分类: Canvas Applab JavaScript 少儿编程
输出指定的 imageData
数据到当前激活画布的指定 (x, y)
位置。
在 APP 应用里使用 canvas 画布,并在画布里绘制图片或图形,这样做有一个好处就是,通过这种方式,你可以在像素级别上获取图像数据并进行相应处理,而这已经足够你创建包含一些常见的图片处理功能的应用。
返回数据对象包含以下字段内容:
// 复制画布上指定区域的图形到画布上新的位置
createCanvas('canvas1', 200, 200);
setFillColor("blue");
rect(0, 0, 50, 50);
var canvasData=getImageData(0, 0, 50, 50);
putImageData(canvasData, 100, 0);
putImageData(canvasData, 50, 50);
putImageData(canvasData, 0, 100);
putImageData(canvasData, 100, 100);
示例代码:修改图像红色值 修改指定像素上的红色颜色值。
//修改指定像素上的红色颜色值。
createCanvas('canvas1', 320, 480);
setFillColor('red');
rect(0, 0, 100, 200);
var imageData = getImageData(0, 0, 320, 480);
// 输出在 imageData 里 像素 x:50 y:50 的红色值到控制台
// 会看到红色值为 255
console.log(getRed(imageData, 50, 50));
// 修改像素红色值,并更新到画布
// 设置 imageData 里像素 x:50 y:50 红色值为 0
setRed(imageData, 50, 50, 0);
// 将修改后的结果输出到画布
putImageData(imageData, 0, 0);
// 重新输出像素红色值到控制台
// 会看到红色值变更为 0
console.log(getRed(imageData, 50, 50));
示例代码:图像处理 修改指定像素红色值为 0。
// 修改指定像素红色值为 0。
createCanvas('canvas1', 200, 200);
setFillColor("red");
circle(100, 100, 50);
var canvasData=getImageData(0, 0, 200, 200);
var redValue = getRed(canvasData, 100, 100);
console.log(redValue);
setRed(canvasData, 100, 100, 0);
putImageData(canvasData, 0, 0);
console.log(getRed(canvasData, 50, 50));
示例代码:图像处理 去除画布所有像素上红色颜色值。
// 去除画布所有像素上红色颜色值。
createCanvas('canvas1', 200, 200);
setFillColor("red");
circle(100, 100, 50);
var canvasData=getImageData(0, 0, 200, 200);
removeRed(canvasData);
// 去掉 'thisImageData' 里所有像素上红色颜色值
// 一行行循环进行处理
function removeRed(thisImageData){
for(var y=0; y < thisImageData.height; y++) {
for(var x=0; x < thisImageData.width; x++) {
setRed(thisImageData, x, y, 0);
}
putImageData(thisImageData, 0, 0);
}
}
putImageData(imgData, x, y);
名称 | 类型 | 必需 | 参数描述 |
---|---|---|---|
imgData | object | Yes | 从画布获取的图像数据对象(使用 getImageData() 方法获取)。 |
x | number | Yes | 指定在画布上放置图像数据相关图像的开始位置横轴坐标(左上角位置坐标)。 |
y | number | Yes | 指定在画布上放置图像数据相关图像的开始位置纵轴坐标(左上角位置坐标)。 |
只在显示结果页面体现代码执行前后变化。
设计
模式里创建画布,或在代码里使用 createCanvas() 方法创建画布。使用 putImageData()
之前调用 getImageData() 获取图像数据。获取图像的尺寸与调用 getImageData()
时指定的区域参数有关。putImageData()
方法将在画布上指定的 (x, y)
位置放置图像数据相关的图像。