const warp = document.getElementById('mainPic');
// 初始化主canvas
const obj = document.getElementById('canvas');
const ctx = obj.getContext('2d');
// 原始图片
const pic = new Image();
pic.src = "pic.jpg";
// 加载图片
pic.onload = function () {
ctx.drawImage(this, 0, 0, this.width, this.height);
// 获取图片像素信息
let imageData = ctx.getImageData(0,0,obj.width,obj.height);
let pixels = imageData.data;
//遍历像素点
for (let i=0; i<pixels.length; i+=4){
let r = pixels[i];
let g = pixels[i+1];
let b = pixels[i+2];
originImageData[i] = r;
originImageData[i+1] = g;
originImageData[i+2] = b;
//获取灰色
let gray = parseInt((r+g+b)/3);
pixels[i] = gray;
pixels[i+1] = gray;
pixels[i+2] = gray;
}
ctx.putImageData(imageData, 0,0);
// 点击事件
obj.addEventListener('click', function(event) {
let rect = obj.getBoundingClientRect();
let cx = event.clientX - rect.left * (obj.width / rect.width);
let cy = event.clientY - rect.top * (obj.height / rect.height);
console.log(cx,cy);
});
}
canvas彩色图片处理为黑白
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
相关阅读更多精彩内容
- 项目中有一个需求:实现画板的功能。提供一张图片。可以在上面写字,并且可以放大缩小。 1.图片转换为canvas 在...
- 【解决方案1】 先用yum安装myslq-devel,命令为:yum install mysql-devel -y...