`
qujianfeng
  • 浏览: 78804 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

flex中给图片(或任意组件)着色的方法

    博客分类:
  • Flex
阅读更多

作者:屈剑峰   201143

 

flex中可使用ColorMatrixFilter滤镜给组件着色,该滤镜属性matrix是一个4*5的矩阵,Flex在显示组件时各像素新的颜色计算公式如下:

redResult=(a[0]*srcR) + (a[1]*srcG) + (a[2]  * srcB) + (a[3] *srcA) + a[4]

greenResult=(a[5]*srcR) + (a[6]*srcG) + (a[7]*srcB) + (a[8] *srcA) + a[9]

blueResult = (a[10]*srcR) + (a[11]*srcG) + (a[12]*srcB) + (a[13] *srcA) + a[14]

alphaResult = (a[15]*srcR) + (a[16]*srcG) + (a[17]*srcB) + (a[18]*srcA) + a[19]

现在,我的需求是给图片着色,参数为:

1、混合颜色;

2、混合比例

我们称原图片中某像素的颜色值为源source,称混合色为目标target,设混合比例为k。那么处理得到的新颜色中红色分量的值为:

r=rs×(1-k)+rt×k

     

 

其中rs为原红色分量值,rt为混合色中的红色分量值。

同理,新颜色中绿色与蓝色分量的值分别为:

g=gs×(1-k)+gt×k

b=bs×(1-k)+bt×k

 

 

上述公式就是给图片着色的原理。

 

那么,现在为了使用ColorMatrixFilter滤镜,构造一个能到达上述公式计算效果的矩阵如下:

1-k

0

0

0

rt×k

0

1-k

0

0

gt×k

0

0

1-k

0

bt×k

0

0

0

1

0

 最后一行是alpha通道的混合设置,此处“0  0  0  1  0表示不改变原图像的透明度。

 

按照此矩阵实现的着色程序效果如下:

 

 原图:



 指定混合色为FF0000,混合比例为50%后的显示效果为:



 

点击下载源码。

 

  • 大小: 159.8 KB
  • 大小: 135.8 KB
分享到:
评论

相关推荐

    flex中给图片或任意组件着色的方法

    综上所述,Flex提供了多种方式来给图片或组件着色,包括使用颜色过滤器、自定义组件、样式表等。在`zhuose.mxml`文件中,你可以看到具体的应用实例,通过分析这个文件,可以更深入地理解这些方法的实现。在实际开发...

    flex 图片缩放移动组件

    - 在Flex中,我们可以继承UIComponent或Canvas类来创建自定义组件。UIComponent是所有Flex组件的基础,提供了绘制和布局的基本功能。Canvas则是一个容器,可以容纳其他组件,并提供绘图能力。 2. **图像显示**: ...

    flex 图片上传组件 php服务

    在图片上传组件中,开发者可以创建一个用户友好的界面,包含一个或多选文件输入控件,用户可以通过它来选择要上传的图片。Flex提供了事件监听机制,使得当用户选择图片后,可以触发上传过程。 在选择图片后,文件...

    flex组件保存为图片

    flex组件保存为图片,弹出保存对话框,更改保存路径,图片名。

    Flex调用JavaServlet将组件快照导出成图片

    在本场景中,我们将讨论如何在Flex中捕获组件的快照,将其转换为ByteArray,并通过JavaServlet将其导出为图片。 首先,让我们深入了解Flex中的组件快照。在Flex中,我们可以使用BitmapData类来捕获组件的视觉表示,...

    Flex 分页组件,flex自定义组件

    在Flex中,分页组件通常是自定义组件,因为Flex的标准库并未提供内置的分页解决方案。开发者通常需要根据实际需求来设计和实现这样的组件。以下是对Flex分页组件的详细解释: 1. **分页机制**:分页的核心是将大...

    flex 高级自定义组件

    Flex中的高级自定义组件开发是构建复杂用户界面的关键技术,它允许开发者超越基本组件的限制,以满足特定的业务需求和视觉设计。在创建高级组件时,了解并掌握一些核心方法的重写至关重要,这些方法涉及到组件的生命...

    flex图片放大镜组件,自定义组件

    本案例中提到的"flex图片放大镜组件"就是这样一个自定义组件,它专为图片展示站点设计,提供了一个便捷的方式来实现图片的放大效果,从而提升用户体验。 首先,我们来理解一下“flex”这个词。在前端布局中,...

    flex 两个图片播放小程序

    对于图片的显示,Flex中的Image组件是关键。Image组件可以加载网络上的图像或者内存中的BitmapData对象,并提供基本的缩放和显示功能。若要实现更复杂的交互,如平滑缩放,可能需要自定义组件,覆盖其...

    Flex中组件datagrid导出Excel

    3. **XML序列化**:在Flex中,我们可以利用XML或XMLList来表示数据,因为它们可以轻松地转换成字符串,方便写入文件。将DataGrid的数据转换成XML,可以采用循环遍历的方式,将每行数据转换成一个XML节点,然后将所有...

    Flex 保存组件至本地

    下面我们将深入探讨如何在Flex中实现将组件保存为本地PNG图片。 1. **Flex组件渲染** Flex组件是以ActionScript 3为基础的对象,它们在运行时由Flash Player或Adobe AIR渲染为像素。要将组件保存为图片,首先需要...

    flex组件介绍

    Flex中的容器组件,如`VBox`、`HBox`和`Group`,用于组织和管理其他组件的布局。这些容器提供了不同的布局策略,例如垂直排列、水平排列或自由布局。通过使用容器,开发者可以轻松地控制界面元素的布局和对齐方式。 ...

    Flex各自定义组件事件通讯例子

    在Flex开发中,自定义组件和事件通讯是构建复杂应用程序的关键技术。本示例通过一个简单的用户登录场景,深入解析了如何实现组件间的有效通信。下面将详细解释Flex自定义组件、事件处理以及它们在实际应用中的作用。...

    Flex 组件全屏的组件

    这个在使用的时候可以自己加,另外一个问题就是由于这个库是FLEX3的,所以在FLEX4.0或以上的版本(使用的spark主题)的时候,需要修改类里面的Canvas为Group或者其他的显示容器,如果有什么问题可以发邮件给我。...

    Flex 组件Flex 组件Flex 组件

    在Flex中,组件是可重用的代码单元,它们负责处理用户输入、显示数据和实现特定功能。每个Flex组件都是一个继承自UIComponent的类,拥有自己的生命周期、样式和事件处理机制。例如,Button组件用于响应用户的点击...

    flex 图片查看组件

    Flex图片查看组件是一种基于Adobe Flex技术的用户界面组件,它专为在Web应用程序中实现高质量的图片浏览体验而设计。Flex是一种开源的、基于ActionScript的框架,用于构建富互联网应用(RIA)。这款组件允许用户在...

    flex组件之数据可视化组件实例源码

    在Flex中,数据可视化组件是用于创建各种图表和图形的工具,使开发者能够将复杂的数据转化为易于理解的视觉表示。本实例源码提供了对数据可视化的深入理解和实际应用。 首先,我们要了解Flex中的数据绑定机制。在...

    Flex 自定义组件ImageViewer

    在Flex中,自定义组件是开发者根据项目需求创建的特殊UI元素,可以扩展和定制标准的MX或Spark组件。本示例着重于一个名为“ImageViewer”的自定义组件,这通常是一个用于展示图像并可能包含缩放、平移等交互功能的...

    flex 超炫组件 coverflow 组件源码

    在Flex中,Coverflow组件可以为用户界面带来引人入胜的视觉体验。 源码分析: 1. **AS编写**:ActionScript是Flash Professional、Flash Builder等工具用来编写Flex应用程序的主要脚本语言。Coverflow组件的源码是...

    flex 重写组件

    1. **解决业务需求**:当现有Flex组件的功能或样式不足以满足项目的特殊需求时,如自定义一个按钮组件以支持长文本自动换行的功能,就需要对其进行重写。 2. **模块化设计**:为了提高代码的复用性和维护性,开发者...

Global site tag (gtag.js) - Google Analytics