暴雨滤镜
最后更新于: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)