安卓使用滤镜的点点滴滴

简介: 安卓使用滤镜的点点滴滴

前言

安卓开发中,对图像的处理一般就是Bitmap(位图),它包含了图像的全部数据,即点阵和颜色值,点阵就是包含像素点的矩阵,而颜色值就是ARGB,分别代表透明、红色、绿色、蓝色通道,它们共同决定了像素点的颜色。

今天要说的滤镜是针对图片的颜色进行修改。一张图片所存储的信息有图像信息加上数据和标志。每一张图片都有图像通道和颜色模式。图像通道在RGB色彩模式下就是指在下就是指那单独的红色R、绿色G、蓝色B部分。也就是说,一幅完整的图像,是由红色绿色蓝色三个通道组成的。图像中默认的图像通道取决于颜色模式(用来记录颜色方式),常用的图像模式有:位图模式、灰度模式、双色调模式、RGB模式、CMTK模式、HSB模式、LAB模式等等。

在安卓中的颜色模式为RGBA,最后的A为透明度。

颜色矩阵

对于图像来说,每一个像素点都有一个颜色矩阵分量来保存颜色,即下图的RGBA1(矩阵C,1表示颜色的偏移量),而在Android系统中,颜色矩阵是用一个4*5的数字矩阵来表示的(矩阵A,由一维数组构成)。它们的乘积(矩阵R)即为屏幕上显示的图像颜色,这里的RGBA取值应在0~255之间。

20191119112205586.jpg

布局

先看一下布局吧

20191119112432745.png

接下来看几种比较典型的效果:

黑白照片

/**
     * 黑白照片
     *
     * @param view /
     */
    public void btnCreateGray(View view) {
        colorMatrix.set(new float[]{0.213f, 0.715f, 0.072f, 0, 0,
                0.213f, 0.715f, 0.072f, 0, 0,
                0.213f, 0.715f, 0.072f, 0, 0,
                0, 0, 0, 1, 0});
        newImageView.setColorFilter(new ColorMatrixColorFilter(colorMatrix));
    }

20191119112620573.png

底片效果

/**
     * 底片效果
     *
     * @param view /
     */
    public void btnCreateFilm(View view) {
        colorMatrix.set(new float[]{-1, 0, 0, 0, 255,
                0, -1, 0, 0, 255,
                0, 0, -1, 0, 255,
                0, 0, 0, 1, 0});
        newImageView.setColorFilter(new ColorMatrixColorFilter(colorMatrix));
    }

20191119112708895.png

结尾

滤镜感觉没多少写的东西,可以自己多玩玩,改变RGBA的值进行组合尝试,会得到特别的效果。



目录
相关文章
|
2月前
|
安全 Android开发 iOS开发
安卓与iOS的较量:技术深度对比
【10月更文挑战第18天】 在智能手机操作系统领域,安卓和iOS无疑是两大巨头。本文将深入探讨这两种系统的技术特点、优势以及它们之间的主要差异,帮助读者更好地理解这两个平台的独特之处。
58 0
|
1月前
|
存储 搜索推荐 Android开发
安卓与iOS的较量:谁更胜一筹?
在当今智能手机市场中,安卓和iOS无疑是两大主流操作系统。它们各自拥有独特的优势和特点,吸引了大量用户。本文将从技术、用户体验、生态系统等方面对比分析安卓和iOS,以期为大家提供一个全面的认识。
|
1月前
|
安全 5G Android开发
安卓与iOS的较量:技术深度解析
【10月更文挑战第24天】 在移动操作系统领域,安卓和iOS无疑是两大巨头。本文将深入探讨这两个系统的技术特点、优势和不足,以及它们在未来可能的发展方向。我们将通过对比分析,帮助读者更好地理解这两个系统的本质和内涵,从而引发对移动操作系统未来发展的深思。
51 0
|
2月前
|
Android开发 iOS开发 UED
安卓与iOS的较量:谁才是智能手机市场的王者?
本文将深入探讨安卓和iOS两大智能手机操作系统之间的竞争关系,分析它们各自的优势和劣势。通过对比两者在市场份额、用户体验、应用生态等方面的表现,我们将揭示出谁才是真正的市场领导者。无论你是安卓粉丝还是iOS忠实用户,这篇文章都将为你提供一些有趣的观点和见解。
|
3月前
|
人工智能 Android开发 iOS开发
安卓与iOS开发:平台选择的艺术
在移动应用开发的广阔天地里,安卓和iOS两大操作系统各占半壁江山。本文将深入探讨这两个平台的开发环境、工具及市场趋势,帮助开发者在选择适合自己项目的平台时做出更明智的决策。通过比较各自的优势与局限,我们不仅能更好地理解每个系统的核心特性,还能洞察未来技术发展的脉络。无论你是刚入行的新手还是资深开发者,这篇文章都将为你提供有价值的参考和启示。
54 5
|
4月前
|
移动开发 Java Android开发
安卓与iOS开发:选择的艺术与技术的较量
在移动应用开发的广阔天地中,安卓和iOS两大平台各自占据着半壁江山。本文将探讨这两个平台在开发过程中的异同,以及它们如何影响开发者的选择。我们将从技术栈、市场份额、用户群体等方面进行分析,并结合案例来说明不同平台的优势与挑战。无论你是初涉移动开发领域的新手,还是经验丰富的老手,这篇文章都将为你提供有价值的见解。让我们一起探索这片充满机遇与挑战的土地吧!
|
4月前
|
安全 Android开发 iOS开发
安卓与iOS的终极对决:哪个系统更适合你?
在智能手机的世界里,安卓和iOS两大操作系统如同两座巍峨的山峰,各自拥有庞大的用户群体。本文将深入浅出地探讨这两个系统的优缺点,并帮助你找到最适合自己的那一款。让我们一起揭开这场技术盛宴的序幕吧!
|
4月前
|
搜索推荐 Android开发 iOS开发
探索安卓与iOS开发的差异之美
在数字时代的浪潮中,移动应用开发如同一场精心编排的交响乐,安卓和iOS这两大平台扮演着不同乐器的角色,各自以独特的方式奏响。本文将带领读者走进这场音乐盛宴,感受两大平台在开发过程中所展现的不同韵律,从设计理念到用户体验,从市场占有率到生态系统,我们将一探究竟,欣赏它们如何在竞争激烈的市场中和谐共存,共同推动技术的进步与创新。
48 0
|
6月前
|
图形学 开发者
【制作100个unity游戏之26】unity2d横版卷轴动作类游11(附带项目源码)
【制作100个unity游戏之26】unity2d横版卷轴动作类游11(附带项目源码)
81 0
|
6月前
|
图形学
【制作100个unity游戏之26】unity2d横版卷轴动作类游10(附带项目源码)
【制作100个unity游戏之26】unity2d横版卷轴动作类游10(附带项目源码)
56 0