码迷,mamicode.com
首页 > 其他好文 > 详细

图像滤镜艺术--暴雨滤镜

时间:2014-11-30 20:11:34      阅读:182      评论:0      收藏:0      [点我收藏+]

标签:c#   暴雨效果滤镜   

    今天给大家介绍的是一款暴雨滤镜,可以将一些风和日丽的风景照片变换为暴雨效果的照片,废话不多说,先给大家看下效果:

bubuko.com,布布扣

                                                                         (a)原图

bubuko.com,布布扣

                                                                     (b)PS效果图

bubuko.com,布布扣

                                                                    (c)代码实现效果图

    这个暴雨滤镜也比较简单,按照之前的步骤,我们依次介绍PS实现过程以及代码实现过程。

    PS实现过程如下:

    1,暴雨模板图像生成:

    这个过程我简单介绍一下我的实现,不过大家不需要自己制作模板了,我已经把模板放在了资源里,大家直接使用即可。模板制作步骤如下:

    1.1 新建一个空白图像,大小按照自己的需要确定,我这里取的是1000*1000大小,填充为黑色;

    1.2 点击"滤镜"--"杂色"--"添加杂色",参数选择"平均分布"--"80",数值自己可调;

    1.3 调整色阶:

    bubuko.com,布布扣

    这一步主要是过滤一部分噪点;

    1.4 执行模糊--动感模糊--角度63--距离12:

    bubuko.com,布布扣

    这一步,角度和距离可以自己调整,如果希望暴雨狂风效果明显点,可以跳大角度值;如果希望雨点大些,可以调大距离值;

    1.5 执行高斯模糊,半径1.0即可,即得模板图像:

bubuko.com,布布扣

    2,打开原始图像A,对原始图像执行饱和度调整:

 

    bubuko.com,布布扣

    3,执行对比度调整:

    bubuko.com,布布扣

    这一步结合饱和度调整,主要是降低亮度 ,营造阴云密布的气氛。

    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

 


 

 

 

   

图像滤镜艺术--暴雨滤镜

标签:c#   暴雨效果滤镜   

原文地址:http://blog.csdn.net/trent1985/article/details/41624743

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!