flex 图片滤镜效果实例
来源:互联网 发布:工程中标数据网 编辑:程序博客网 时间:2024/05/17 08:38
先附上几个别人例子,引自:http://www.cnblogs.com/xxcainiao/archive/2008/11/08/1329664.html
1:聚光灯效果:
实例:http://www.rphelan.com/flex/SpotlightDemo/SpotlightDemo.html
源文件:http://www.rphelan.com/flex/SpotlightDemo/srcview/index.html
2:放大镜效果:
实例:http://www.rphelan.com/flex/MagnifyDemo/MagnifyDemo.html
源文件:http://www.rphelan.com/flex/MagnifyDemo/srcview/index.html
3:缩放模糊效果:
实例:http://www.rphelan.com/flex/ZoomBlurDemo/ZoomBlurDemo.html
源文件:http://www.rphelan.com/flex/ZoomBlurDemo/srcview/index.html
4:浮雕效果:
实例:http://www.rphelan.com/flex/SharpenDemo/SharpenDemo.html
源文件:http://www.rphelan.com/flex/SharpenDemo/srcview/index.html
5:水波效果:
实例:http://www.rphelan.com/flex/WaveReflectionDemo/WaveReflectionDemo.html
源文件:http://www.rphelan.com/flex/WaveReflectionDemo/srcview/index.html
都是使用了flashplayer10的ShaderFilter。
然后是一些理论性的知识。看了很多网页,不一一列举,不过http://dev.yesky.com/SoftChannel/72342371928637440/20050105/1896848.shtml给予的信息比较多。
人的眼睛对于图像的观察,人的眼睛对于灰度/亮度的敏感要远远大于对色彩的敏感,而人的眼睛对于暖色调和冷色调的敏感有要远大于对一般色彩的敏感度。经过大量的测试,人们得到了一个经验公式,来说明人的眼睛是如何识别亮度的:
Gray = Red * 0.3 + Green * 0.6 + Blue * 0.1
而右因为人的眼睛对于绿色的敏感度最大,就有了一个更加近似的公式:
Gray = Green
于是想到图片的灰度效果,可以通过将图片的各个像素中的Red和Blue值去掉来实现:
var bitmap:BitmapData = new BitmapData();
…
for (var i:uint = 0; i < bitmap.width; i++) {
for (var j:uint = 0; j < bitmap.height; j++) {
var color:uint = bitmap.getPixel(i, j);
color = color<<16>>>24;
color = color << 16 | color << 8 | color;
bitmap.setPixel(i, j, color);
}
}
然后想一想木雕效果,木雕是看上去是只有两个颜色的。于是可以在做灰度处理时,给一个分解值,当大于这个值时,全黑显示,不然全白。于是可以修改代码:
var bitmap:BitmapData = new BitmapData();
…
for (var i:uint = 0; i < bitmap.width; i++) {
for (var j:uint = 0; j < bitmap.height; j++) {
var color:uint = bitmap.getPixel(i, j);
color = color<<16>>>24;
color = color << 16 | color << 8 | color;
if (color > 128) color = 0xff;
else color = 0;
bitmap.setPixel(i, j, color);
}
}
再看看锐化效果。锐化就是比较相邻的几个像素,把当前像素加上和周围的像素的差就可以了。你可以将该差值乘以一个数值,比如0.3——这个数值就是锐化系数了。
图片柔化,原理和锐化一样,只不过它不是要体现差值,而是要缩小差值;它是将当前点用周围几个点的平均值来代替。
再就是扩散了,也就是水彩效果。一种简单的处理方法就是用当前点周围的随机点代替。于是想到做出具有某种风格的水彩效果——那就需要很复杂的处理方法了。
var bitmap:BitmapData = new BitmapData();
…
var rate:Number = 0.2;//扩散系数
for (var i:uint = 1; i < bitmap.width – 1; i++) {
for (var j:uint = 1; j < bitmap.height – 1; j++) {
if (Math.random() > rate) continue;
var ii:uint = i + (Math.random() > 0.5 ? 1 : -1);
var jj:uint = j + (Math.random() > 0.5 ? 1 : -1);
bitmap.setPixel(i, j, bitmap.getPixel(ii, jj));
}
}
对于我而言,最难理解的是浮雕效果的原理:将相邻的两个像素相减,得到的差加上127作为新的值。唉这是基于什么理论呢?
- flex 图片滤镜效果实例
- flex 图片滤镜效果实例
- FLEX实例:几款滤镜效果实例.
- flex 4.0 滤镜效果.
- CSS滤镜让图片模糊(毛玻璃效果)实例页面
- CSS图片滤镜效果
- Html中图片滤镜效果
- JS 滤镜切割图片效果。
- css图片滤镜效果代码
- jQuery 变动图片、滤镜效果
- CoreImage图片滤镜效果详解
- IOS 图片滤镜效果处理
- flex中实现滤镜遮罩效果
- 图片添加滤镜效果,99中效果
- Flex图片加载失败和遮罩效果处理实例
- flex滤镜:聚光灯效果、放大镜效果、缩放模糊效果
- ps实例二:使用高斯滤镜制作图片阴影效果?
- flex 图片展示效果
- 软件研发之需求分析(一)
- Python: 使用装饰器“@”取得函数执行时间
- 软件研发之需求分析(二)
- length()与lengthb()的区别
- 自說自話
- flex 图片滤镜效果实例
- TIM学习文档22-- 账户分配
- javascript 总结 《一》
- 百度2010校园招聘中的一道有意思的笔试题
- 让.Net程序脱离.net framework框架运行
- 笔试题及解答
- 哎,大家的东西要注意备份啊。。。
- CreateRemoteThread API 函数心得
- 五年内坚定看好医药行业(2009-06-04 22:27:32)