`
leecong1p
  • 浏览: 147880 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

Android中利用颜色过滤调整图象风格

 
阅读更多

做游戏经常遇到这个情况,一张图片,从完全透明,渐渐过渡到不透明显示出来。

常规的处理方式是:获得该图象的ARGB颜色数组,每次绘制调整颜色信息。这种方法需要把处理的内容绘制到一张缓冲图象上,再获得该图象的颜色信息,每次循环再逐像素处理。比较繁琐。

下面介绍用android封装的滤镜实现半透明过渡效果,先介绍一下颜色矩阵:                               
              |a b c d e  |           |R|
        A = |f  g h  i  j |       C=|G|
              |k l m n o  |           |B|
              |p q  r s t  |           |A|
                                           |1| 

           |R'|
           |G'|
     R'= |B'|=A*C
           |A'|  
           
矩阵A即为颜色矩阵,每行分别表示R、G、B、A通道。每列表示R、G、B、A分量,最后一列是整体偏移。

矩阵C是原来的颜色信息,最终颜色R‘=A*C,运算方式如下:

           R'=a*R+b*G+c*B+d*A+e
           G'=f*R+g*G+h*B+i*A+j
           B'=k*R+l*G+m*B+n*A+o
           A'=p*R+q*G+r*B+s*A+t

 

OK,我们用代码来示例,如何把图象的透明度调为原来的一半:

        //颜色矩阵数据(4*5)
        float[] array = new float[] {
                1, 0, 0, 0, 0,
                0, 1, 0, 0, 0,
                0, 0, 1, 0, 0,
                0, 0, 0, 0.5f, 0 };

        ColorMatrix colorMatrix = new ColorMatrix(array);
        Paint paint = new Paint();
        paint.setColorFilter(new ColorMatrixColorFilter(colorMatrix));
        g.drawBitmap(img, 0, 0, paint);

 大功告成!其实利用颜色过滤可以实现很多效果,比如转灰度、高光、调整饱和度等等。另外,这个方法对效率有一定的影响,注意优化。

分享到:
评论

相关推荐

    Android颜色拾取Palette

    在Android开发中,色彩是构建用户界面不可或缺的一部分。"Android颜色拾取Palette"是一个强大的工具,...无论你是希望为用户提供自定义颜色选择,还是想要基于图像内容自动调整界面风格,都可以充分利用Palette来实现。

    android-media-picker,一个简单易用的媒体选择器android库。从设备中选择任何图像、视频或音频.zip

    1. **主题定制**:Media Picker支持自定义主题,允许开发者根据应用的UI风格调整选择器的颜色、样式等。 2. **过滤器**:可以通过设置过滤器来限制用户可选择的文件类型,例如只允许选择特定分辨率的图片或特定格式...

    Android-GpuImage

    在实际开发中,Android-GpuImage不仅适用于拍照应用,还可以用于美颜相机、图片编辑应用、实时视频过滤等多种场景。由于其高效的处理方式,即使在低性能设备上也能保持良好的性能表现。 总的来说,Android-GpuImage...

    ImageFilter:图像过滤器

    在这个项目中,开发者可以学习到如何利用Java编程语言来实现各种图像滤镜,从而改变图片的颜色、亮度、对比度等属性,或者应用艺术风格的效果。 首先,我们要理解图像过滤器的基本概念。图像过滤器是一种对像素进行...

    android整片叠底处理透明色

    通过调整Paint对象的其他属性,如颜色过滤器、抗锯齿设置,还可以进一步丰富图像效果。 在提供的"multiplyimage"文件中,可能包含了一个示例项目或代码片段,用于演示上述的正片叠底处理透明色的过程。你可以通过...

    android.graphics包.pdf

    此外,Paint还支持颜色过滤器,使我们能够对绘制的内容应用复杂的色彩效果。 Color类则负责颜色的创建和转换。颜色在Android中以一个整数表示,由alpha、red、green、blue四部分组成。Color类提供了一些静态方法,...

    Android 资源与应用国际化

    5. **图片的颜色**:除了普通的位图资源外,还可以使用颜色过滤器对图像进行颜色处理。 6. **Nine-patch(被拉伸或缩小的图像)**:这是一种特殊的图像格式,允许图像在保持比例的同时被拉伸或缩小,非常适合制作可...

    android编程技巧详细

    利用`setTextAppearance()`方法或在布局文件中使用`textAppearance`属性,可以方便地调整文本的大小、颜色和风格。示例代码如下: ```java textView.setTextAppearance(context, android.R.style.TextAppearance_...

    android 主题设置

    ### Android主题设置详解 #### 一、概述 在Android应用开发过程中,...通过上述方法,开发者可以灵活地为Android应用定制不同风格的主题,从而提升用户体验。同时,合理利用主题和样式机制,也可以显著提高开发效率。

    Android画图学习

    - `setColorFilter(ColorFilter cf)`:设置颜色过滤器。 - `setAlpha(int alpha)`:设置透明度。 - **获取信息**: - `getBounds()`:获取Drawable的边界。 - `getIntrinsicWidth()` 和 `getIntrinsicHeight()`...

    安卓头像制作图片圆角剪裁相关-avatar-android各种头像的展示.rar

    这可能包括尺寸调整、颜色过滤、添加边框等功能。在这个项目中,你可以学习到如何处理用户的原始图像,并将其转化为适用于应用显示的头像格式。 2. 图片圆角剪裁:安卓提供了多种实现图片圆角的方法。一种是使用`...

    支持图像连环画特效

    开发者需要对Android的图形系统有深入理解,包括颜色空间、图像过滤器、画布操作等,才能有效地实现连环画效果。 冰冻特效的实现可能涉及到图像的模糊处理,通过降低图像的饱和度和对比度,创造出一种静止、模糊的...

    KingJA_CanvasDemo

    6. **颜色与样式**:通过Paint设置不同的颜色模式(如RGB、ARGB)、颜色过滤器,以及填充和描边样式。 7. **高级绘图效果**:可能包括抗锯齿、阴影、渐变、图像滤镜等高级绘图效果的实现。 8. **动画绘制**:如果...

    实例71_界面效果_图片效果.rar_实例界面效

    在这个实例中,重点集中在“界面效果”和“图片效果”,意味着我们将学习如何利用图像处理技术来优化UI设计。 描述中提到的"实例71_界面效果_图片效果"简洁明了地概括了这个主题,暗示我们将探讨如何通过各种图片...

    AndroidTrainingCHS.v0.9.1.pdf

    - **自定义ActionBar的风格:** 修改ActionBar的外观,如背景颜色、图标等。 - **ActionBar的覆盖层叠:** 学习如何处理多个Activity中的ActionBar层叠问题。 **3. 兼容不同的设备** - **适配不同的语言:** 支持多...

    NetSupport School 课堂管理软件(简体中文版)

    NetSupport 教师助理应用程序是传统桌面教师端应用程序的延伸,可在您现有的 NetSupport 管理的教室环境中使用,为教师提供了在 ICT 教学区周围更好的移动性,助教利用这一理想工具可以帮助监督学生进度。...

    电商app ui Grocery .ai .xd素材下载

    素材通常包含可编辑的图层结构,以便调整元素大小、颜色或替换图像。 6. **移动平台适配**:由于是“Grocery Shopping App Android”,设计应特别关注Android设备的兼容性。这包括遵循Material Design指南,保证在...

    手机版 ZENCART手机模板

    - **自定义设计**:通过修改 CSS 样式表和 HTML 结构,调整颜色、字体、布局等元素,以符合品牌风格。 - **功能测试**:确保所有功能在手机上正常工作,如搜索、过滤、购物车、支付等。 - **SEO 优化**:添加元...

    JAVA上百实例源码以及开源项目源代码

    像坐标控制、旋转矩阵、定时器、生成图像、数据初始化、矩阵乘法、坐标旋转、判断是否是顺时针方向排列、鼠标按下、放开时的动作等,都可在本源码中得以体现。 Java编写的显示器显示模式检测程序 2个目标文件 内容...

Global site tag (gtag.js) - Google Analytics