原文:图像滤镜艺术---Hudson滤镜(Instagram)

    今天给大家实现的是Instagram中的Hudson滤镜,为什么介绍Instagram滤镜,原因很简单,Instagram本身就是一个巨大的成功,迄今为止,没有哪个软件的滤镜效果可以超越它的。

    Hudson滤镜比较简单,主要是一个模板的寻找,这个模板,我也是在网上找到的,如果单单用PS去实现这个模板效果,我觉得我们是舍易取难,我们追求的是最后的效果,而不是过程呵呵。

    首先看下对比效果:

   

                                    (a) Instagram  Hudson效果

   

                                                 (b) PS效果图

    

                                                                    (c) C# 效果图

    按照原则,先介绍PS实现过程:

    1,打开原始图像以及模板图像,Instagram的目标效果图像:

其中,图层0为原始图像,图层1为模板图像(模板图像与psd文件一起,我都会放到包里供大家下载使用),另外的Hudson即Instagram中的效果图像。

    2,选中图层1,选择“叠加”图层混合模式,即得到效果图:

    然后,我们介绍C#实现:

    按照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 HudsonFilter
{
public HudsonFilter(Bitmap src,Bitmap bg_a)
{
this.srcBitmap = src;
this.map = bg_a;
}
private Bitmap srcBitmap = null;
private Bitmap map = null;
public Bitmap Apply()
{
if (srcBitmap != null)
{
Bitmap src = new Bitmap(srcBitmap);
int w = srcBitmap.Width;
int h = srcBitmap.Height;
BitmapData srcData = src.LockBits(new Rectangle(0, 0, w, h), ImageLockMode.ReadWrite, PixelFormat.Format32bppArgb);
BitmapData mapaData = map.LockBits(new Rectangle(0, 0, w, h), ImageLockMode.ReadWrite, PixelFormat.Format32bppArgb);
byte* p = (byte*)srcData.Scan0;
byte* pa = (byte*)mapaData.Scan0;
int r = 0, g = 0, b = 0;
for (int j = 0; j < h; j++)
{
for (int i = 0; i < w; i++)
{
b = p[0];
g = p[1];
r = p[2]; b = SpecialEffectClass.ModeSuperpositionEffect(b, pa[0]);
g = SpecialEffectClass.ModeSuperpositionEffect(g, pa[1]);
r = SpecialEffectClass.ModeSuperpositionEffect(r, pa[2]); p[0] = (byte)b;
p[1] = (byte)g;
p[2] = (byte)r; p += 4;
pa += 4;
}
p += srcData.Stride - w * 4;
pa += mapaData.Stride - w * 4;
}
src.UnlockBits(srcData);
map.UnlockBits(mapaData);
return src;
}
else
{
return null;
}
} }
}

 

界面效果:

    最后给出代码和PS实现过程的包,免费下载地址http://download.csdn.net/detail/trent1985/8177015

    以上就是Hudson这款滤镜的实现过程,希望大家喜欢,有什么问题可以给我留言或者邮件:

邮箱dongtingyueh@163.com  QQ:1358009172

最后,分享一个专业的图像处理网站(微像素),里面有很多源代码下载:

图像滤镜艺术---Hudson滤镜(Instagram)的更多相关文章

  1. 图像滤镜艺术---Photoshop实现Instagram之Sierra滤镜

    原文:图像滤镜艺术---Photoshop实现Instagram之Sierra滤镜 本文介绍PS实现Instagram中的Sierra滤镜,内容如下: 先看下效果图: 下面是具体实现步骤: 1. To ...

  2. 图像滤镜艺术---Photoshop实现Instagram之Mayfair滤镜效果

    原文:图像滤镜艺术---Photoshop实现Instagram之Mayfair滤镜效果 本文介绍一下如何使用Photoshop来实现Instagram中的Mayfair滤镜的效果. 以上就是这个滤镜 ...

  3. 图像滤镜艺术---Photoshop实现Instagram Amaro滤镜特效

    原文:图像滤镜艺术---Photoshop实现Instagram Amaro滤镜特效 本文是我收集的一些使用Photoshop来实现Instagram滤镜的一些内容,在这里跟大家分享一下,这些效果是完 ...

  4. 图像滤镜艺术--Toaster滤镜

    原文:图像滤镜艺术--Toaster滤镜     根据Instagram CEO的说法,Toaster滤镜是Instagram所有滤镜中最复杂的滤镜,这个滤镜给人一种新奇的红色烘烤感,很能让人联想起这 ...

  5. 图像滤镜艺术----Brannan滤镜

    原文:图像滤镜艺术----Brannan滤镜     作为第一篇文章,本人将介绍Instagram中Brannan 滤镜的实现过程,当然,是自己的模拟而已,结果差异敬请谅解.     先看下效果图: ...

  6. 图像滤镜艺术---Wave滤镜

    原文:图像滤镜艺术---Wave滤镜 Wave Filter水波滤镜 水波滤镜是通过坐标变换来模拟水波效果,使图像呈现出水波的特效.这个滤镜有一个可调参数:水波的扭曲程度. 代码如下; //     ...

  7. 图像滤镜艺术---Swirl滤镜

    原文:图像滤镜艺术---Swirl滤镜 Swirl Filter Swirl 滤镜是实现图像围绕中心点(cenX,cenY)扭曲旋转的效果,效果图如下: 原图 效果图 代码如下:         // ...

  8. Atitit 图像处理之仿油画效果 Oilpaint油画滤镜 水彩画 漫画滤镜 v2

    Atitit 图像处理之仿油画效果 Oilpaint油画滤镜 水彩画 漫画滤镜 v2 1.1. 具体源码参考1 2. ,油画 水彩画具有几个比较明显的特点如下:1 2.1. 明暗层次(灰度)较少  也 ...

  9. 图像滤镜艺术---(Instagram)1977滤镜

    原文:图像滤镜艺术---(Instagram)1977滤镜 图像特效---(Instagram)1977滤镜 本文介绍1977这个滤镜的具体实现,这个滤镜最早是Instagram中使用的 ,由于Ins ...

随机推荐

  1. [NPM] Pass arguments to npm scripts

    Often times you’ll have variations that you’ll want to make to your npm scripts and repeating yourse ...

  2. JAVA基本数据类型及其转换

    Java语言是一种强类型语言.这意味着每个变量都必须有一个声明好的类型.Java语言提供了八种基本类型.六种数字类型(四个整数型,两个浮点型),一种字符类型,还有一种布尔型.Java另外还提供大数字对 ...

  3. Oracle数据库sqlplus与plsqldev解决乱码

    (出现乱码 解决方法留存) 问题描述 : 在用eclipse使用jdbc插入中文数据的时,数据用plsqldev查询时,正常显示中文,但是用sqlplus查询时,为中文乱码,当用plsqldev直接插 ...

  4. Erlang 杂记

    学习Erlang的时候在书的留白处随手记录了一些东西,还有一些记录在了demo的注释里面,今天抽时间整理出来了一部分,分享一下. Erlang的设计哲学是为每一个独立的事件创建一个新进程. Erlan ...

  5. 三次握手、四次握手、backlog

    TCP:三次握手.四次握手.backlog及其他   TCP是什么 首先看一下OSI七层模型: 然后数据从应用层发下来,会在每一层都加上头部信息进行封装,然后再发送到数据接收端,这个基本的流程中每个数 ...

  6. 病毒软件,导致DNS失效的解决办法

    问题症状,DNS失效了,ping域名总是失败. 问题回顾:几个周之前,某群友在群里上传了一个病毒软件,我想去测验下,最后果然中毒.前几天,把软件卸载了,上周末解决了删除最后一款软件导致无法上网的问题. ...

  7. js Map 遍历

    1. 在知道的key的情况下遍历map自然就跟数组一样的访. 2.在不知道key的情况下遍历map(此情况更多吧)    2.1  for(var key in Map){  };  //第一种   ...

  8. js 如何一次性删除数组中的多个元素

    用for循环或者forEach遍历数组的话,在方法体内部splice都得不到正确的结果.有什么好的办法解决这个问题吗? var arr=[2,3,5,7]; arr.forEach(function( ...

  9. quartz结合多线程处理后台业务

    最近项目中有播放视频的需求,技术选型采用UMS播放器,免费版只能播放FLV格式的视频文件,因此需要对用户上传的视频进行格式转换,转换工具为FormatFactory,功能还是比较强大的.但是面临的一个 ...

  10. Oracle数据库案例整理-Oracle系统执行失败-sql_trace至TRUE导致Oracle在根文件夹中缺乏可用空间

    1.1       述 在"$ORACLE_BASE/diag/rdbms/$ORACLE_SID/$ORACLE_SID/trace"文件夹下产生大量"oracle_w ...