暴雨滤镜

最后更新于:2022-04-01 06:45:43

   今天给大家介绍的是一款暴雨滤镜,可以将一些风和日丽的风景照片变换为暴雨效果的照片,废话不多说,先给大家看下效果: ![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2016-01-05_568b331de5550.jpg)                                                                          (a)原图 ![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2016-01-05_568b331e0a8a9.jpg)                                                                      (b)PS效果图 ![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2016-01-05_568b331e5f80b.jpg)                                                                     (c)代码实现效果图     这个暴雨滤镜也比较简单,按照之前的步骤,我们依次介绍PS实现过程以及代码实现过程。     PS实现过程如下:     1,暴雨模板图像生成:     这个过程我简单介绍一下我的实现,不过大家不需要自己制作模板了,我已经把模板放在了资源里,大家直接使用即可。模板制作步骤如下:     1.1 新建一个空白图像,大小按照自己的需要确定,我这里取的是1000*1000大小,填充为黑色;     1.2 点击"滤镜"--"杂色"--"添加杂色",参数选择"平均分布"--"80",数值自己可调;     1.3 调整色阶:     ![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2016-01-05_568b331e79202.jpg)     这一步主要是过滤一部分噪点;     1.4 执行模糊--动感模糊--角度63--距离12:     ![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2016-01-05_568b331e9982e.jpg)     这一步,角度和距离可以自己调整,如果希望暴雨狂风效果明显点,可以跳大角度值;如果希望雨点大些,可以调大距离值;     1.5 执行高斯模糊,半径1.0即可,即得模板图像: ![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2016-01-05_568b331ead2d8.jpg)     2,打开原始图像A,对原始图像执行饱和度调整:     ![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2016-01-05_568b331ec23b1.jpg)     3,执行对比度调整:     ![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2016-01-05_568b331ed3af6.jpg)     这一步结合饱和度调整,主要是降低亮度 ,营造阴云密布的气氛。     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](http://download.csdn.net/detail/trent1985/8210627)     以上就是暴雨效果这款滤镜的实现过程,希望大家喜欢,有什么问题可以给我留言或者邮件: 邮箱[dongtingyueh@163.com](mailto:dongtingyueh@163.com)  QQ:1358009172 **最后,分享一个专业的图像处理网站(微像素),里面有很多源代码下载:** [http://www.zealpixel.com/portal.php](http://www.zealpixel.com/portal.php)
';