图片是由一个个的像素点组成的,而每一个像素点都是由三原色(red,green,blue)加透明度(alpha)来组成。所以说如果我们希望改变图像的图像数据,其实就是改变图像每一个像素点的数据。

首先创建canvas对象,canvas对象提供了 2D、3D两种绘图方式,这里我们使用2D绘图
使用 context2d = drawing.getContext('2d'); 方法获得context2d对象。微信小程序通过wx.createCanvasContext创建canvas对象,拿到context2d对象之后,我们通过context2d提供的方法getImageData(),来获取图像数据,微信通过wx.getImageInfo,getImageData()有4个参数,分别表示画面区域的 x 和 y 坐标以及该区域的像素宽度和高度 var imagedata = context2d.getImageData(0, 0, image.width, image.height);
ImageData 对象都有三个属性:width、height 和
data。其中 data 属性是一个数组,保存着图像中每一个像素的数据。并通过,red,green,blue,alpha来表示。我们如果想要改变图像的图像数据,就需要改变 imagedata的data属性数据,改变 red,green,blue,alpha 的值。

var imagedata = context2d.getImageData(0, 0, image.width, image.height);

var data = imagedata.data;

let i,len,red,green,blue,alpha,average;

for (i = 0 , len = data.length; i < len; i+=4) {
                red = data[i];
                green = data[i + 1];
                blue = data[i + 2];
                alpha = data[i + 3];
                
                average = Math.floor((red + green + blue) / 3);

data[i] = average; 
                data[i+1] = average; 
                data[i+2] = average;
            }
            
            imagedata.data = data;
            context2d.putImageData(imagedata, 0, 0);

//微信通过

// wx.canvasPutImageData

//微信的这个方法可以将画布上的图形转换为真是图片,从而进行上传下载

//wx.canvasToTempFilePath

通过画布canvas实现图片黑白化相关推荐

  1. Python实现图片黑白化

    下面是使用OpenCV Python实现图片黑白化的示例代码: ```python import cv2 # 读取图片 img = cv2.imread('lena.png') # 将图片转换为灰度图 ...

  2. iOS之实现图片的压缩、解压缩、模糊、置灰、马赛克、黑白化、调色等处理

    压缩图片 func imageCompress(targetWidth:CGFloat) -> UIImage {let targetHeight = (targetWidth/width)*h ...

  3. php图片黑白,JS对图片进行黑白化设置

    这次给大家带来JS对图片进行黑白化设置,JS对图片进行黑白化设置的注意事项有哪些,下面就是实战案例,一起来看一下. HTML5推出了元素,使我们可以通过js动态的在 这个区域之中进行图像的绘制.而我们 ...

  4. PPT中如何将图片灰化(黑白化)

    在制作PPT时,有时候为了突出重点,需要将其余的内容设置成灰色.如果是文字内容,直接可以用选用灰色字体即可,那图片呢.这里有一个简单的办法. 1.选中图片 2.右键,选择"设置对象格式&qu ...

  5. [OHIF-Viewers]医疗数字阅片-医学影像-querySelector() 选择器语法-将画布(canvas)图像保存成本地图片的方法...

    [OHIF-Viewers]医疗数字阅片-医学影像-querySelector() 选择器语法-将画布(canvas)图像保存成本地图片的方法 将画布(canvas)图像保存成本地图片的方法 使用HT ...

  6. canvas画布加载图片 - Kaiqisan

    canvas画布加载图片 就是往画布里面添加一些本地的或者网络上的图片.从而使画布图文并茂. 关键代码 let image = new Image(): 这里新增一个图片对象,它是一个图像的载体.但通 ...

  7. canvas画布上平铺图片绘制文本

    1️⃣知识点①:如何在canvas画布上平铺图片: ⚠️知识点实现: <!DOCTYPE html> <html><head><meta charset=&q ...

  8. 如何抓取canvas画布中的图片

    如何抓取canvas画布中的图片 网络页面中存放图片的形式有很多 这里说一下canvas格式时怎么获取 String fullImgJs = "return document.getElem ...

  9. html怎样把图片放进画布中,HTML5 canvas操作图片

    1.canvas操作图像的能力 canvas更有意思的一项特性就是图像操作能力.可以用于动态的图像合成或者作为图形的背景,以及游戏界面(Sprites)等等.浏览器支持的任意格式的外部图片都可以使用, ...

最新文章

  1. 【转】数据结构与算法(上)
  2. elasticsearch 查看索引_ELK技术栈之ElasticSearch(一)
  3. 在docker镜像中加入环境变量
  4. SilverLight学习笔记--如何在xaml文件中操作用户在后台代码定义的类(2)--示例篇:创建一个登录控件(原创)(转载本文请注明出处)...
  5. FFmpeg学习5:多线程播放视音频
  6. 成功解决AttributeError: module 'numpy' has no attribute 'equal'
  7. Python面向对象中super用法与MRO机制
  8. window 10下 Spark 安装简单使用
  9. Django的model中日期字段设置默认值的问题
  10. Java自动切表_java_Mybatis自动创建表和更新表结构,最近有小伙伴问我mybatis有没有 - phpStudy...
  11. python 进程池_Python实践17-进程池
  12. 计算机组成原理学习 笔记一
  13. html中设置边框形状为齿状,在CSS中制作锯齿状的三角形边框
  14. 云+社区「开源之道」主题直播,这些技术大佬都说了哪些干货?
  15. 计算机二级 java和web_2016计算机二级web程序设计判断题及答案
  16. formvalidation表单验证
  17. 《高质量程序设计指南--C/C++语言》学习笔记
  18. 在python中使用websockets
  19. ListView优化之ViewHolder
  20. web网页播放音频文件

热门文章

  1. 适用场景全新升级!扩展 Dragonfly2 作为分布式缓存系统架构
  2. 量子计算机可不可以穿越时空,美俄专家新发现:量子世界时间可以停止!未来穿越时空有希望?...
  3. 各个大学论坛大全,大学校园美女
  4. 让人舒服的程度决定了你的人生高度
  5. 树莓派3b安装opencv简单方法
  6. 百度被曝3月推出自家ChatGPT/ 小米全球副总裁辞职/ 苹果折叠屏iPad有消息了...今日更多新鲜事在此...
  7. C++ Qt开发社交好友列表
  8. app安全:如何应对界面劫持
  9. 众目所归火猴浏览器3.0再出杀手锏
  10. JAVA编写发送126邮箱