- 浏览: 1085033 次
- 性别:
- 来自: 杭州
文章分类
- 全部博客 (695)
- 心情日记 (14)
- AS开发工具 (12)
- 文章转载 (99)
- AIR (5)
- 问题总结 (46)
- SWF格式 (7)
- 测试总结 (10)
- 外文资料 (9)
- 算法技术 (33)
- AS3常用开源库 (43)
- 源码范例 (102)
- FLEX (72)
- FLASH 优化 (33)
- 游戏开发 (49)
- 开发技术 (11)
- 工作应用 (34)
- AS3收集 (140)
- WebBase (0)
- 开发构想 (4)
- 设计模式 (2)
- 框架和框架范例 (19)
- RED5 (3)
- java开发 (3)
- JAVA (1)
- FLASH-3D (23)
- 3D (6)
- 书籍 (10)
- 业界信息资料 (3)
- C# (1)
- JavaScript (12)
- HTML5 (6)
- Flixel (1)
- D5Power RPG网页游戏引擎 (0)
- ColorMatrixFilter - 获得相应颜色的色调 函数 (0)
- Starling (0)
最新评论
-
老顽童203:
字体
水果忍者鼠标跟随特效制作[转载] -
hairball00:
[转] 放出超多的Flash组件源代码 -
he74552775:
flash AS3 RegExp简单功能用法(转) -
hanshuai1232000:
第四点,有利也有弊,等你做了大型的aprg,你就知道了
[转]位图数据内存优化 -
yangfantao:
太感谢
[转] 放出超多的Flash组件源代码
查API的时候查到一个ColorTransform类,觉得这个类应该可以完成我需要的功能,不过现在还是想不到应该怎么样才能实现这个需求
哈哈,谢谢!
功能实现了,经你一提醒,我试了一下把MC的饱和度和亮度都设为-100,差不多就是我想要的效果
代码如下:
哈哈,谢谢!
功能实现了,经你一提醒,我试了一下把MC的饱和度和亮度都设为-100,差不多就是我想要的效果
代码如下:
var color:ColorMatrix = new ColorMatrix(); color.adjustSaturation(-100); color.adjustBrightness(-100); mc.filters = [new ColorMatrixFilter(color)]; 以下是ColorMatrix类(此类是他人作品,使用请加上作者信息,谢谢!): /** * ColorMatrix by Grant Skinner. August 8, 2005 * Updated to AS3 November 19, 2007 * Visit www.gskinner.com/blog for documentation, updates and more free code. * * You may distribute this class freely, provided it is not modified in any way (including * removing this header or changing the package path). * * Please contact info@gskinner.com prior to distributing modified versions of this class. *usage:http://www.gskinner.com/blog/archives/2005/09/flash_8_source.html *var cm = new ColorMatrix(); * cm.adjustColor(20,20,20,20); *displayObject.filters = [new ColorMatrixFilter(cm)]; */ package { dynamic public class ColorMatrix extends Array { // constant for contrast calculations: private static const DELTA_INDEX:Array = [ 0, 0.01, 0.02, 0.04, 0.05, 0.06, 0.07, 0.08, 0.1, 0.11, 0.12, 0.14, 0.15, 0.16, 0.17, 0.18, 0.20, 0.21, 0.22, 0.24, 0.25, 0.27, 0.28, 0.30, 0.32, 0.34, 0.36, 0.38, 0.40, 0.42, 0.44, 0.46, 0.48, 0.5, 0.53, 0.56, 0.59, 0.62, 0.65, 0.68, 0.71, 0.74, 0.77, 0.80, 0.83, 0.86, 0.89, 0.92, 0.95, 0.98, 1.0, 1.06, 1.12, 1.18, 1.24, 1.30, 1.36, 1.42, 1.48, 1.54, 1.60, 1.66, 1.72, 1.78, 1.84, 1.90, 1.96, 2.0, 2.12, 2.25, 2.37, 2.50, 2.62, 2.75, 2.87, 3.0, 3.2, 3.4, 3.6, 3.8, 4.0, 4.3, 4.7, 4.9, 5.0, 5.5, 6.0, 6.5, 6.8, 7.0, 7.3, 7.5, 7.8, 8.0, 8.4, 8.7, 9.0, 9.4, 9.6, 9.8, 10.0 ]; // identity matrix constant: private static const IDENTITY_MATRIX:Array = [ 1,0,0,0,0, 0,1,0,0,0, 0,0,1,0,0, 0,0,0,1,0, 0,0,0,0,1 ]; private static const LENGTH:Number = IDENTITY_MATRIX.length; // initialization: public function ColorMatrix(p_matrix:Array = null) { p_matrix = fixMatrix(p_matrix); copyMatrix(((p_matrix.length == LENGTH) ? p_matrix : IDENTITY_MATRIX)); } // public methods: public function reset():void { for (var i:uint = 0; i < LENGTH; i++) { this[i] = IDENTITY_MATRIX[i]; } } public function adjustColor(p_brightness:Number, p_contrast:Number, p_saturation:Number, p_hue:Number):void { adjustHue(p_hue); adjustContrast(p_contrast); adjustBrightness(p_brightness); adjustSaturation(p_saturation); } public function adjustBrightness(p_val:Number):void { p_val = cleanValue(p_val, 100); if (p_val == 0 || isNaN(p_val)) { return; } multiplyMatrix([ 1,0,0,0,p_val, 0,1,0,0,p_val, 0,0,1,0,p_val, 0,0,0,1,0, 0,0,0,0,1 ]); } public function adjustContrast(p_val:Number):void { p_val = cleanValue(p_val, 100); if (p_val == 0 || isNaN(p_val)) { return; } var x:Number; if (p_val < 0) { x = 127 + p_val / 100 * 127; } else { x = p_val % 1; if (x == 0) { x = DELTA_INDEX[p_val]; } else { //x = DELTA_INDEX[(p_val<<0)]; // this is how the IDE does it. x = DELTA_INDEX[(p_val << 0)] * (1 - x) + DELTA_INDEX[(p_val << 0) + 1] * x; // use linear interpolation for more granularity. } x = x * 127 + 127; } multiplyMatrix([ x/127,0,0,0,0.5*(127-x), 0,x/127,0,0,0.5*(127-x), 0,0,x/127,0,0.5*(127-x), 0,0,0,1,0, 0,0,0,0,1 ]); } public function adjustSaturation(p_val:Number):void { p_val = cleanValue(p_val, 100); if (p_val == 0 || isNaN(p_val)) { return; } var x:Number = 1 + ((p_val > 0) ? 3 * p_val / 100 : p_val / 100); var lumR:Number = 0.3086; var lumG:Number = 0.6094; var lumB:Number = 0.0820; multiplyMatrix([ lumR*(1-x)+x,lumG*(1-x),lumB*(1-x),0,0, lumR*(1-x),lumG*(1-x)+x,lumB*(1-x),0,0, lumR*(1-x),lumG*(1-x),lumB*(1-x)+x,0,0, 0,0,0,1,0, 0,0,0,0,1 ]); } public function adjustHue(p_val:Number):void { p_val = cleanValue(p_val, 180) / 180 * Math.PI; if (p_val == 0 || isNaN(p_val)) { return; } var cosVal:Number = Math.cos(p_val); var sinVal:Number = Math.sin(p_val); var lumR:Number = 0.213; var lumG:Number = 0.715; var lumB:Number = 0.072; multiplyMatrix([ lumR+cosVal*(1-lumR)+sinVal*(-lumR),lumG+cosVal*(-lumG)+sinVal*(-lumG),lumB+cosVal*(-lumB)+sinVal*(1-lumB),0,0, lumR+cosVal*(-lumR)+sinVal*(0.143),lumG+cosVal*(1-lumG)+sinVal*(0.140),lumB+cosVal*(-lumB)+sinVal*(-0.283),0,0, lumR+cosVal*(-lumR)+sinVal*(-(1-lumR)),lumG+cosVal*(-lumG)+sinVal*(lumG),lumB+cosVal*(1-lumB)+sinVal*(lumB),0,0, 0,0,0,1,0, 0,0,0,0,1 ]); } public function concat(p_matrix:Array):void { p_matrix = fixMatrix(p_matrix); if (p_matrix.length != LENGTH) { return; } multiplyMatrix(p_matrix); } public function clone():ColorMatrix { return new ColorMatrix(this); } public function toString():String { return "ColorMatrix [ " + this.join(" , ") + " ]"; } // return a length 20 array (5x4): public function toArray():Array { return slice(0, 20); } // private methods: // copy the specified matrix's values to this matrix: protected function copyMatrix(p_matrix:Array):void { var l:Number = LENGTH; for (var i:uint = 0; i < l; i++) { this[i] = p_matrix[i]; } } // multiplies one matrix against another: protected function multiplyMatrix(p_matrix:Array):void { var col:Array = []; for (var i:uint = 0; i < 5; i++) { for (var j:uint = 0; j < 5; j++) { col[j] = this[j + i * 5]; } for (j = 0; j < 5; j++) { var val:Number = 0; for (var k:Number = 0; k < 5; k++) { val += p_matrix[j + k * 5] * col[k]; } this[j + i * 5] = val; } } } // make sure values are within the specified range, hue has a limit of 180, others are 100: protected function cleanValue(p_val:Number, p_limit:Number):Number { return Math.min(p_limit, Math.max(-p_limit, p_val)); } // makes sure matrixes are 5x5 (25 long): protected function fixMatrix(p_matrix:Array = null):Array { if (p_matrix == null) { return IDENTITY_MATRIX; } if (p_matrix is ColorMatrix) { p_matrix = p_matrix.slice(0); } if (p_matrix.length < LENGTH) { p_matrix = p_matrix.slice(0, p_matrix.length).concat(IDENTITY_MATRIX.slice(p_matrix.length, LENGTH)); } else if (p_matrix.length > LENGTH) { p_matrix = p_matrix.slice(0, LENGTH); } return p_matrix; } } }
发表评论
-
greenSock新老库
2012-08-07 13:25 0老库-做项目的时候比新库完全不抖啊 -
Starling开发的游戏源码
2012-07-26 17:13 0Starling开发的游戏源码 -
一个基于STARLING的TOWER塔防游戏
2012-07-24 15:27 0一个基于STARLING的TOWER塔防游戏 -
HttpStatusConfig --一个HTTP 协议返回的 解析说明类
2012-04-18 16:40 0package guwanyuan.qicool.game ... -
HTTP/1.1协议规范(中文归纳版)
2012-04-18 16:39 2113一、介绍(introduction) ... -
[转] [Flash/Flex] 加载SWF性能VS影片剪辑性能
2012-03-15 22:29 0http://bbs.9ria.com/viewthread. ... -
关于富士通windows 7家庭普通板升级为windows 7旗舰版
2012-03-05 14:51 2015windows7普通家庭版不能一下升级到windows7旗舰版 ... -
水果忍者鼠标跟随特效制作[转载]
2012-03-01 16:06 2449实现这效果其实比较简单,主要是思路~! package ... -
请问如何才能让加载到一半的SWF不自动播放
2012-02-29 03:06 1538我用loader加载l=new Loader(); ... -
greensock-as3
2012-02-23 21:26 0greensock-as3 -
禁止输入文本可以粘贴
2012-02-10 13:15 2316//禁止输入文本粘贴动作 private static ... -
江湖情缘游戏里的跳的类
2012-02-08 23:55 0package com.app.role.montions ... -
ColorMatrixFilter - 获得相应颜色的色调 函数
2012-02-08 23:03 0/**获得相应颜色的色调的滤镜**/ public sta ... -
[教程] 路点导航(Waypoint Navigation)
2011-12-31 00:51 0前言:这个不难,所以知道的童鞋不要喷,不知道的童鞋也不要怕,要 ... -
ARPG游戏引擎设计思路
2011-12-31 00:48 00.整体结构 下载 (32.92 KB ... -
Embed绑定XML与txt文本文件
2011-12-28 15:54 4648使用Embed标签可以将图片绑定到swf中并显示,那么我 ... -
Flash_Rich_Text_Editor(完美的富文本编辑器)
2011-12-27 17:55 0Flash_Rich_Text_Editor(完美的富文 ... -
弹弹堂测试
2011-12-08 04:21 0弹弹堂测试弹弹堂测试 -
一些DEMO
2011-11-28 17:42 0一些DEMO一些DEMO -
Matrix学习
2011-11-28 16:51 0Matrix学习
相关推荐
在C# WinForm应用中,将彩色图片转换为灰色图片是一项常见的需求,主要涉及图像处理中的色彩空间转换。本文将详细讲解如何通过C#实现这一功能,并探讨如何提高转换速度,包括使用Safe和Unsafe模式。 首先,让我们...
### Python 实现去除图片中指定颜色的像素功能详解 在图像处理领域,经常需要去除或替换图像中的某些特定颜色,以此来达到预期的效果或者为后续处理做准备。本篇文章将详细解析如何使用Python来实现去除图片中指定...
"获取图片像素工具"是一款专为图像处理爱好者和专业设计师设计的应用程序,它允许用户轻松地查看和提取图像中的每一个像素的颜色信息。在数字图像处理领域,了解和精确控制像素颜色是至关重要的,无论是进行图像编辑...
本文将深入探讨如何在Qt中使用QImage来动态更改图片的像素,并通过一个可运行的例子帮助你理解和实践这个功能。 首先,QImage类提供了丰富的构造函数,可以用来创建一个新的图像或者加载已有的图像文件。例如,你...
本篇实例中,将展示如何使用Python语言以及PIL库(Python Imaging Library,也称作Pillow)去除图片中多余的白色像素,使图片中的白色部分变为透明,进而可以制作出透明的PNG图片。 首先,我们需要了解一些基本概念...
在位图图像中,每个像素都有自己的颜色值,当图片具有白色背景时,这意味着大部分像素的颜色值接近或等于白色(RGB值为255,255,255)。"delBackground"软件通过算法检测这些颜色相近的像素,并将它们转换为透明,...
总的来说,将彩色图片变为灰白图片是通过色彩空间转换实现的,这个过程中涉及到数学计算和编程技能。通过理解这些基本原理,我们可以更好地理解和应用图像处理技术,无论是进行艺术创作还是科学分析。而提供的源码则...
在Qt框架中,实现一个能够加载图片并在界面上显示,同时获取鼠标在图片上移动时所对应的像素点坐标的功能,需要对Qt的图形系统有深入理解。以下将详细阐述这个过程涉及的关键知识点。 首先,Qt中的`QImage`类是处理...
在Python编程语言中,处理图像是一项常见的任务,其中包括图片的切割和获取像素点。这个名为“pngtools.zip”的压缩包可能包含一个或多个Python脚本,用于实现这些功能。让我们详细了解一下如何使用Python来实现图片...
总的来说,经纬度转像素和Web前端定位插件是现代Web应用中实现地理位置服务的关键技术。它们使得开发者能够创建出丰富的地图应用,提供精准的用户定位服务,如导航、附近搜索等功能,极大地提升了用户体验。理解和...
本文将详细介绍如何使用ArcGIS软件中的“Mosaic to New Raster”工具来实现从16位像素深度到8位像素深度的转换。 ### 一、背景介绍 在遥感图像处理中,像素深度指的是每个像素可以存储的信息量,通常以位(bit)为...
经纬度到像素坐标的转换 本文主要讲述了经纬度到像素坐标的转换过程,这个过程是将地理坐标系下的经纬度信息转换到屏幕坐标系下的像素坐标,以便在地图上正确地显示地理信息。文章中讨论了两种方法:一种是通过公式...
通过这种方式,我们可以将图片的主体部分提取出来,使其能够独立于背景显示,或者用于其他需要无背景的场景,比如虚拟现实、识别或分析。 C语言虽然没有内置的图像处理库,但可以通过调用低级别的操作系统API或者...
1.通过JS技术把获取已知图片的像素值 2.获取到像素值去除A通道干扰 3.把最终的像素值一维数组转换HTML文件格式并导出到文件 4.懂JS获取文件内容的技术人员可以通过JS获取导出的文件内容,赋值给HTML标签,这样图片就...
本示例中,我们将探讨如何使用Matlab将图片像素化到Excel表格中,这是一个将数字图像与电子表格软件结合的有效方法。下面将详细介绍这个过程涉及的主要知识点。 首先,我们从【标题】"Matlab将图片像素化到Excel...
在黑白图像中,每个像素可能是0(黑色)或1(白色),而在彩色图像中,每个像素可能由红、绿、蓝(RGB)三个分量的值组成。对于16进制转换,每个像素的值会被转换成两个十六进制字符,以便于在有限的内存和处理能力...
全能图片格式转换器是一款强大的工具,专为满足用户在图像处理和格式转换需求而设计。该软件支持将PNG图像文件转换成ICO图标格式,适用于创建网站、应用程序或其他需要图标的地方。ICO图标是一种特殊的图像格式,它...
在图像处理和打印行业中,了解如何在像素和毫米之间进行转换是至关重要的。像素(Pixel)是数字图像的基本单位,而毫米(Millimeter)则是物理尺寸的度量单位。这两种单位之间的转换通常涉及到分辨率(DPI,每英寸...
在C#编程环境中,我们可以利用图像处理库如System.Drawing来实现彩色图片向黑白图片的转换。这个过程通常称为灰度化或二值化,即将图片的每个像素从RGB(红绿蓝)三色模型转换为单色调。下面,我们将详细讨论如何...
在IT领域,图片处理是一项常见的任务,而"易语言图片黑白特效"则是一个关于使用易语言实现图片转换为黑白效果的编程实践。易语言是一种中国本土开发的、以中文编程为特色的编程语言,旨在降低编程的难度,让更多人...