renderScript实现图片反色效果实例

本文通过一个实例详细介绍了如何使用RenderScript实现图片的反色效果,即底片效果。通过创建.rs脚本文件并编写kernel函数,计算每个像素的反色,然后在Java层调用RenderScript的相关方法进行处理和输出。最后,提供了一个辅助工具类用于方便地应用此效果。
摘要由CSDN通过智能技术生成

下面通过一个例子深入了解renderScript的工作过程:

用renderScript实现图片的反色效果:

反色效果又叫底片效果,首先要知道什么是反色:

反色又叫补色,红的补色是绿色,蓝的补色是橙色,黄的补色是紫色,由这三种对比关系可引出很多对比的反色。   例如黑与白、红与绿等。   反色是与原色叠加可以变为白色的颜色,即用白色(RGB:255,255,255)去原色的颜色。比如说红色(RGB:255,0,0)的反色是绿色(0,255,255)。

那么可以推想出反色效果的计算方法,即对图片中的每一个像素颜色用255来减,然后给该像素点颜色重新赋值,得到的新图片既是取反色的目标图片。

由于图片的颜色有三个分量,即RGB,于是假设像素点为cur,那么取反色公式为:

Cur.r=255-Cur.r;

Cur.g=255-Cur.g;

Cur.b=255-Cur.b

在这个实例中,renderScript的方便之处在于为我们提供了获取每个像素点的方法。

编写rs脚本:

 在app/src/main/文件夹下新建/rs文件夹,在里面新建一个.rs后缀的文件。

Rs文件基本语法与c语言类似,主要处理函数为kernel函数:

 

#pragma version(1)
#pragma rsjava_package_name(cn.dream.mao.magnifier)

// 存储输入的Allocation,也就是存放原始图片的地方
rs_allocation inputAllocation;

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值