美文网首页Android项目JNI和【NDK】Android-NDK/JNI
Android NDK开发:对Bitmap进行各种操作

Android NDK开发:对Bitmap进行各种操作

作者: itfitness | 来源:发表于2019-07-30 13:49 被阅读5次

    目录

    目录

    效果展示

    实现原理

    ●反相
    通俗的讲就是对色彩进行反转即获取每个像素的RGB通道的值,并用颜色的最大值255减去每个通道的值,比如某个像素的各个通道的值分别为:R = 10,G = 50 ,B = 70 ,那么用255分别对它们进行减法操作后的值为:R = 245,G = 205,B = 185。
    ●灰度1
    这个也比较简单,先获取像素每个通道的值然后取其中最大的值赋给这个像素的每个通道,比如某个像素的各个通道的值分别为:R = 10,G = 50 ,B = 70 ,那么获取它们其中最大值赋给每个通道后是:R = 70,G = 70,B = 70。
    ●灰度2
    这个与灰度1相似只不过是获取最小值,比如某个像素的各个通道的值分别为:R = 10,G = 50 ,B = 70 ,那么获取它们其中最小值赋给每个通道后是:R = 10,G = 10,B = 10。
    ●灰度3
    这个与上面两个相似只不过是获取平均值,比如某个像素的各个通道的值分别为:R = 10,G = 50 ,B = 70 ,那么获取它们平均值赋给每个通道后是:R = 43,G = 43,B = 43(因为这里的值都是整数)。
    ●去绿
    这个灰度的算法相似,如某个像素的各个通道的值分别为:R = 10,G = 50 ,B = 70 ,那么这时我们只需要将绿色置零即可,如置零后是:R = 10,G = 0,B = 70 。
    ●去蓝
    这个与去绿的算法相似,如某个像素的各个通道的值分别为:R = 10,G = 50 ,B = 70 ,那么这时我们只需要将蓝色置零即可,如置零后是:R = 10,G = 50,B = 0 。
    ●去红
    这个与去绿的算法相似,如某个像素的各个通道的值分别为:R = 10,G = 50 ,B = 70 ,那么这时我们只需要将红色置零即可,如置零后是:R = 0,G = 50,B = 70 。
    ●亮度
    对亮度进行调整其实就是对像素各个通道的值进行调整,比如某个像素的各个通道的值分别为:R = 10,G = 50 ,B = 70 ,那么如果我们想要让它的亮度变高就需要将三个通道的值加上一定的值比如加10后:R = 20,G = 60 ,B = 80 这时图像的整体亮度就提升了,同理减去一定的值后图像整体亮度就变低了,当然在操作的过程中要注意颜色值的取值范围为(0~255)。
    ●对比度
    对图像的对比度进行操作其实就是让像素之间的值进行分化,这里我们用到的是乘法,也就是对像素的各个通道的值与某一个值相乘,操作的过程中同样要注意颜色值的取值范围为(0~255)。

    案例源码

    这里就不一一展示源码了,需要的朋友可以直接查看项目源码

    相关文章

      网友评论

        本文标题:Android NDK开发:对Bitmap进行各种操作

        本文链接:https://www.haomeiwen.com/subject/qvbgrctx.html