今天给大家介绍的是一款暴雨滤镜,可以将一些风和日丽的风景照片变换为暴雨效果的照片,废话不多说,先给大家看下效果:
(a)原图
(b)PS效果图
(c)代码实现效果图
这个暴雨滤镜也比较简单,按照之前的步骤,我们依次介绍PS实现过程以及代码实现过程。
PS实现过程如下:
1,暴雨模板图像生成:
这个过程我简单介绍一下我的实现,不过大家不需要自己制作模板了,我已经把模板放在了资源里,大家直接使用即可。模板制作步骤如下:
1.1 新建一个空白图像,大小按照自己的需要确定,我这里取的是1000*1000大小,填充为黑色;
1.2 点击"滤镜"--"杂色"--"添加杂色",参数选择"平均分布"--"80",数值自己可调;
1.3 调整色阶:
这一步主要是过滤一部分噪点;
1.4 执行模糊--动感模糊--角度63--距离12:
这一步,角度和距离可以自己调整,如果希望暴雨狂风效果明显点,可以跳大角度值;如果希望雨点大些,可以调大距离值;
1.5 执行高斯模糊,半径1.0即可,即得模板图像:
2,打开原始图像A,对原始图像执行饱和度调整:
3,执行对比度调整:
这一步结合饱和度调整,主要是降低亮度 ,营造阴云密布的气氛。
4,将模板图像与当前图像进行”滤色“,即可。
以上就是 PS 实现的过程,相当简单吧,效果也还不错呵呵。
然后,让我们用C#代码,按照上述过程进行编程,主要代码如下:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Drawing; using System.Drawing.Imaging; namespace SpecialeffectDemo { unsafe class RainFilter { private Bitmap curBitmap = null; private Bitmap rainMap = null; public RainFilter(Bitmap src,Bitmap map) { this.curBitmap = src; this.rainMap = map; } public Bitmap Apply() { return RainFilterProcess(); } private Bitmap RainFilterProcess() { Bitmap temp = SpecialEffectClass.DoHueAndSaturationAdjust(curBitmap, 0, 0, -50);//饱和度调整 temp = SpecialEffectClass.DoBrightContrastAdjust(temp, 0, -50, 0, 128);//亮度对比度调整 return SpecialEffectClass.DoEffect(temp, rainMap, 0, (int)SpecialEffectClass.EffectMode.MODE_FILTERCOLOR);//滤色处理 }
} }
注意:上述代码中的DoHueAndSaturationAdjust之类的,还是基于我的SpecialEffect.dll文件,这个详情在第一篇博客中已经说明。这里只介绍一下原理过程,有需要可以联系我。
最后放上PS实现和C#代码实现的DEMO下载:http://download.csdn.net/detail/trent1985/8210627
以上就是暴雨效果这款滤镜的实现过程,希望大家喜欢,有什么问题可以给我留言或者邮件:
邮箱dongtingyueh@163.com QQ:1358009172