作者:屈剑峰 2011年4月3日
在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提供了多种方式来给图片或组件着色,包括使用颜色过滤器、自定义组件、样式表等。在`zhuose.mxml`文件中,你可以看到具体的应用实例,通过分析这个文件,可以更深入地理解这些方法的实现。在实际开发...
- 在Flex中,我们可以继承UIComponent或Canvas类来创建自定义组件。UIComponent是所有Flex组件的基础,提供了绘制和布局的基本功能。Canvas则是一个容器,可以容纳其他组件,并提供绘图能力。 2. **图像显示**: ...
在图片上传组件中,开发者可以创建一个用户友好的界面,包含一个或多选文件输入控件,用户可以通过它来选择要上传的图片。Flex提供了事件监听机制,使得当用户选择图片后,可以触发上传过程。 在选择图片后,文件...
flex组件保存为图片,弹出保存对话框,更改保存路径,图片名。
在本场景中,我们将讨论如何在Flex中捕获组件的快照,将其转换为ByteArray,并通过JavaServlet将其导出为图片。 首先,让我们深入了解Flex中的组件快照。在Flex中,我们可以使用BitmapData类来捕获组件的视觉表示,...
在Flex中,分页组件通常是自定义组件,因为Flex的标准库并未提供内置的分页解决方案。开发者通常需要根据实际需求来设计和实现这样的组件。以下是对Flex分页组件的详细解释: 1. **分页机制**:分页的核心是将大...
Flex中的高级自定义组件开发是构建复杂用户界面的关键技术,它允许开发者超越基本组件的限制,以满足特定的业务需求和视觉设计。在创建高级组件时,了解并掌握一些核心方法的重写至关重要,这些方法涉及到组件的生命...
本案例中提到的"flex图片放大镜组件"就是这样一个自定义组件,它专为图片展示站点设计,提供了一个便捷的方式来实现图片的放大效果,从而提升用户体验。 首先,我们来理解一下“flex”这个词。在前端布局中,...
对于图片的显示,Flex中的Image组件是关键。Image组件可以加载网络上的图像或者内存中的BitmapData对象,并提供基本的缩放和显示功能。若要实现更复杂的交互,如平滑缩放,可能需要自定义组件,覆盖其...
3. **XML序列化**:在Flex中,我们可以利用XML或XMLList来表示数据,因为它们可以轻松地转换成字符串,方便写入文件。将DataGrid的数据转换成XML,可以采用循环遍历的方式,将每行数据转换成一个XML节点,然后将所有...
下面我们将深入探讨如何在Flex中实现将组件保存为本地PNG图片。 1. **Flex组件渲染** Flex组件是以ActionScript 3为基础的对象,它们在运行时由Flash Player或Adobe AIR渲染为像素。要将组件保存为图片,首先需要...
Flex中的容器组件,如`VBox`、`HBox`和`Group`,用于组织和管理其他组件的布局。这些容器提供了不同的布局策略,例如垂直排列、水平排列或自由布局。通过使用容器,开发者可以轻松地控制界面元素的布局和对齐方式。 ...
在Flex开发中,自定义组件和事件通讯是构建复杂应用程序的关键技术。本示例通过一个简单的用户登录场景,深入解析了如何实现组件间的有效通信。下面将详细解释Flex自定义组件、事件处理以及它们在实际应用中的作用。...
这个在使用的时候可以自己加,另外一个问题就是由于这个库是FLEX3的,所以在FLEX4.0或以上的版本(使用的spark主题)的时候,需要修改类里面的Canvas为Group或者其他的显示容器,如果有什么问题可以发邮件给我。...
在Flex中,组件是可重用的代码单元,它们负责处理用户输入、显示数据和实现特定功能。每个Flex组件都是一个继承自UIComponent的类,拥有自己的生命周期、样式和事件处理机制。例如,Button组件用于响应用户的点击...
Flex图片查看组件是一种基于Adobe Flex技术的用户界面组件,它专为在Web应用程序中实现高质量的图片浏览体验而设计。Flex是一种开源的、基于ActionScript的框架,用于构建富互联网应用(RIA)。这款组件允许用户在...
在Flex中,数据可视化组件是用于创建各种图表和图形的工具,使开发者能够将复杂的数据转化为易于理解的视觉表示。本实例源码提供了对数据可视化的深入理解和实际应用。 首先,我们要了解Flex中的数据绑定机制。在...
在Flex中,自定义组件是开发者根据项目需求创建的特殊UI元素,可以扩展和定制标准的MX或Spark组件。本示例着重于一个名为“ImageViewer”的自定义组件,这通常是一个用于展示图像并可能包含缩放、平移等交互功能的...
在Flex中,Coverflow组件可以为用户界面带来引人入胜的视觉体验。 源码分析: 1. **AS编写**:ActionScript是Flash Professional、Flash Builder等工具用来编写Flex应用程序的主要脚本语言。Coverflow组件的源码是...
1. **解决业务需求**:当现有Flex组件的功能或样式不足以满足项目的特殊需求时,如自定义一个按钮组件以支持长文本自动换行的功能,就需要对其进行重写。 2. **模块化设计**:为了提高代码的复用性和维护性,开发者...