uni小程序canvas实现图像灰度和透明化

这篇具有很好参考价值的文章主要介绍了uni小程序canvas实现图像灰度和透明化。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

在小程序原生中也一样,只不过uni改成wx

不管是在uni还是在原生都要指定 canvas  2d类型,如果不指定类型的话,透明化会有问题。

canvas背景透明设置,小程序,前端

 初始化完成以后通过 getImageData属性获取到画布中每一个像素的rgba值

灰度值

const data = this.ctx.getImageData(0,0 ,width, height)

let value = 0

for (let i = 0; i < data.length; i+=4) {
    // 灰度值 = (r+g+b) / 3  rgb的平均值就是灰度值, 这个最后的3是可以调整的,可以实现深度和浅度

    value = Math.floor((data[i]+data[i+1]+data[i+2]) / 3);

    data[i] = data[i+1] = data[i+2] = value;

}

// 清空画布 重新添加
this.ctx.clearRect(0, 0, width, height);
this.ctx.putImageData(data, 0, 0)

透明化(如果canvas没有配置type类型的情况下,修改data[i+3] = 0是不会透明的, 需要对rgba都做修改)文章来源地址https://www.toymoban.com/news/detail-522446.html

const num = 220。// 可以通过某个交互实现画布中哪些颜色要透明哪些不需要透明
for (let i = 0; i < data.length; i+=4) {
	if(data[i] >= num && data[i+1] >= num && data[i+2] >= num) {
		data[i+3] = 0  // 将rgba的。a = 0 就实现透明
        /**
            如果没有给canvas设置类型,需要对rgba都做处理
            data[i] = data[i+1] = data[i+2] = 0;
			data[i+3] = -1
        */
	}
}

到了这里,关于uni小程序canvas实现图像灰度和透明化的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Windows11任务栏无法透明化解决办法

    你可以选择停或是不停,下次更新可能就把任务栏又给整不能透明了 对于运行Windows11家庭版的用户,没有组策略编辑器,但可以使用注册表停止自动更新。 注意:错误地修改注册表可能会对您的PC造成不可逆转的损坏。在开始之前,请确保手动备份注册表,创建系统还原点,

    2024年02月06日
    浏览(56)
  • “分布式透明化”在杭州银行核心系统上线之思考

    导读 随着金融行业数字化转型的需求,银行核心系统的升级改造成为重要议题。杭州银行成功上线以 TiDB 为底层数据库的新一代核心业务系统,该实践采用应用与基础设施解耦、分布式透明化的设计开发理念,推动银行核心系统的整体升级。 本文聚焦银行核心系统演进,结

    2024年02月20日
    浏览(40)
  • YOLOv8及其改进系列(五) modules.py 文件划分子集 | 标签透明化与文字大小调节 | 框粗细调节

    最近 YOLOv8 的官方项目又迎来了一个大更新,这次更新对基础不好的同学影响可能比较大, 这次更新主要就是将原本的 ultralytics/nn/modules.py 拆分成了以下 6 个文件: _init_.py block.py conv.py head.py trasnformer.py utils.py 有的同学可能不知道该加哪里了,我这里给大家说一下 我们原本的

    2024年03月16日
    浏览(124)
  • 微信小程序canvas实现简易手写签名版(uni-app)

    微信小程序可以通过canvas实现手写签名的效果,本文中使用的是微信小程序Canvas 2D接口 本示例中绘制的是横屏签名的效果,效果图如下: 这里我们需要调整canvas的物理宽高,默认物理宽高为300*150px,物理宽高调整通过css样式即可,本文中需要根据屏幕高度进行动态调整,使

    2024年02月12日
    浏览(64)
  • uni-app 微信小程序中如何通过 canvas 画布实现电子签名?

    一、实际应用场景 电子签名软件应用场景:电子签名在金融、银行、贷款行业中可以用于对内日常办公流转的文档的盖章签字,对外涉及业务合作协议,采购合同,贷款申请、信用评估、贷款合同、贷款文件表、说明函等等。 可以说,只要是涉及纸质文档签字盖章的场景,

    2024年02月10日
    浏览(53)
  • uni-app,关于 canvas 在 app,小程序, h5中,实现绘制,保存本地图片

    没有套路,没有难读的文档,直接看代码 html部分 js部分

    2024年02月13日
    浏览(58)
  • uniapp 小程序canvas uni.canvasToTempFilePath报错 canvasToTempFilePath:fail fail canvas is empty

     只需要在使用uni.canvasToTempFilePath方法的时候添加上this就行了

    2024年02月16日
    浏览(27)
  • 10 DCT变换对灰度图像压缩(matlab程序)

    1. 简述 一、设计任务 1、在图像的变换和压缩中,常常用到离散余弦变换(DCT)。DCT变换用于图像的压缩实例。请在测试图像中验证你的结论。 2、请编程实现图像的真彩色增强。 3、通过直方图均衡化的方法实现图像的灰度变换,在测试图像中验证你的结论,分析程序结果。

    2024年02月12日
    浏览(56)
  • uni-app微信小程序-利用canvas给图片添加水印

    选择图片 → 将图片绘制到 canvas 中并绘制水印 →将添加水印的图片绘制到 canvas 中 → 将 canvas 画布转换为图片地址 → 上传/展示操作 注意:微信小程序在选择照片或者唤起相机之前需要获取相应的 权限 利用 uni.getSetting 查看用户是否调用相机的权限(有就选择图片,没有就

    2024年02月06日
    浏览(55)
  • 图像处理(1):用Python实现彩色图像转为灰度图像的两种方法以及批量将图片转为灰度图

    用Python实现彩色图像转为灰度图像的两种方法介绍 这篇文章给大家主要介绍使用 Python 将彩色图像转为灰度图像的两种方法,以及用 Python 批量将图片转为灰度图的方法,供大家参考: 使用Python中的cv2库,它自带彩色转灰度的方法,并且代码非常简单。 先读取一张彩色图片,然

    2024年02月11日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包