在.net中,如何简单快捷地实现Photoshop滤镜组中的焦距淡色效果呢?答案是调用SharpImage!专业图像特效滤镜和合成类库。下面开始演示关键代码,您也可以在文末下载全部源码:

设置授权

第一步:在引用了SharpImage.dll之后,调用SharpImage方法之前,一定要先通过下面代码来设置授权信息,如果是试用版,直接输入Test即可。

KeyMgr.SetKey("Test");

初始化一个ImageEngine

从之前的一篇博文中,我们介绍了一张图看懂SharpImage,从那篇文章我们可以看出,SharpImage通过ImageEngine来作为图像处理的基石,所有效果都是作为ImageEngine的Effects来进行的,Effects将被应用到ImageEngine的各种Element上,产生千变万化的效果。请看下面的代码:

//实例化ImageEngine
engine = new ImageEngine();

设置ImageEngine的基础参数

对ImageEngine进行一些自定义设置,具体可参考API手册。代码如下:

//对一些基础属性进行设置
engine.Canvas.AutoSize = true;
engine.Canvas.CenterElements = true;
engine.Canvas.Width = 320;//此处一般设置为图片的宽即可
engine.Canvas.Height = 213;//此处一般设置为图片的高即可
engine.Canvas.Fill.Type = FillType.Solid;//采用纯色填充画布
engine.Canvas.Fill.BackgroundColor = Color.White;//画布为白色的

加载待处理的图片

将待处理的图片加载到内存,SharpImage支持多种方式加载:从图片URL, 本地路径,Bitmap对象, 字节数组, Base64字符串,可任选其一。这里演示下三种方式的代码:

#region 加载测试图片的GDI+对象
bmpDemoImage = Properties.Resources.demo;
#endregion#region 加载测试图片的字节流
using (MemoryStream ms = new MemoryStream())
{bmpDemoImage.Save(ms, bmpDemoImage.RawFormat);arrDemoImage = ms.ToArray();
}
#endregion#region 加载测试图片的Base64字符串
strBase64DemoImage = Convert.ToBase64String(arrDemoImage);
#endregion

初始化ImageElement

在SharpImage中,图片被抽象为ImageElement,我们将待处理图片,绑定到ImageElement上。代码如下:

//建立一个ImageElement
imageEle = new ImageElement();//接下来,根据具体的图片数据源类型来为ImageElement提供数据,这里演示是用一个ComboBox来手动选择的
switch (cmbBox11.SelectedIndex)
{case 0://图片URLimageEle.SourceType = ImageSource.File;imageEle.SourceFile = "http://www.zzsgzn.com/images/demo.jpg";break;case 1://本地路径imageEle.SourceType = ImageSource.File;imageEle.SourceFile = "c:\\demo.jpg";break;case 2://GDI+对象imageEle.SourceType = ImageSource.Image;imageEle.SourceImage = bmpDemoImage;break;case 3://字节数组imageEle.SourceType = ImageSource.Binary;imageEle.SourceBinary = arrDemoImage;break;case 4://base64字符串imageEle.SourceType = ImageSource.Base64String;imageEle.SourceBase64 = strBase64DemoImage;break;
}

绑定ImageElement和ImageEngine

将ImageElment对象和ImageEngine绑定在一起, 只需要执行下面的代码即可:

//将该ImageElement绑定到图像引擎对象上
engine.Elements.Add(imageEle);

此时,一定要注意:engine.Elements可以包含很多的element,最终的效果,将是这些元素的叠加。这个原理和Photoshop的图层叠加是一个原理。

应用滤镜

哈吼!准备工作就绪啦!下面应用滤镜,焦距淡色滤镜是FocalTintEffect,实例化并应用到ImageEngine即可,代码如下:

//初始化滤镜,并添加到ImageEngine的效果滤镜组中
FocalTintEffect effect = new FocalTintEffect();//此处,您也可以对该滤镜的具体参数进行调整,具体参考API手册
...engine.Effects.Add(effect);

获取处理结果

应用完之后,就可以获取处理结果啦!

Image bmpResult = engine.GetOutputImage();

运行效果图

demo源码下载

点击下载源码

相关推荐

您可以需要了解如何获取摄像头帧图片,或者桌面屏幕图片,请了解SharpCapture:
SharpCapture,桌面屏幕,摄像头,音视频采集类库

您可以需要了解对摄像头亮度对比度色调曝光等几十种参数进行调整,请了解SharpCamera:
SharpCamera,专业的摄像头高级参数深控类库

C# vb .net实现焦距淡色特效滤镜相关推荐

  1. C# vb .net实现gamma伽玛调整特效滤镜

    在.net中,如何简单快捷地实现Photoshop滤镜组中的gamma伽玛调整特效滤镜呢?答案是调用SharpImage!专业图像特效滤镜和合成类库.下面开始演示关键代码,您也可以在文末下载全部源码: ...

  2. C# vb .net实现淡色效果滤镜

    在.net中,如何简单快捷地实现Photoshop滤镜组中的淡色效果呢?答案是调用SharpImage!专业图像特效滤镜和合成类库.下面开始演示关键代码,您也可以在文末下载全部源码: 设置授权 第一步 ...

  3. VB.NET实现DirectSound9 (6) 声音特效

    VB.NET实现DirectSound9 (6) 声音特效 关键字: VB.NET DirectSound 9 声音特效 回声Echo                       作者:董含君 转载请 ...

  4. D3Dshader,像素着色器实现黑白、复古、反色特效。

    HLSL像素着色器实现黑白.复古.反色特效 目录 黑白 复古 反色 目录 三种非常简单且容易实现的滤镜效果. 黑白 黑白:也就是灰度图,需要将像素着色器中R.G.B三个颜色分量用同一个灰度值Grey来 ...

  5. C# vb .net实现负片特效滤镜

    在.net中,如何简单快捷地实现Photoshop滤镜组中的负片特效呢?答案是调用SharpImage!专业图像特效滤镜和合成类库.下面开始演示关键代码,您也可以在文末下载全部源码: 设置授权 第一步 ...

  6. Premiere视频特效滤镜功能速查

    Premiere视频特效滤镜功能速查<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office&q ...

  7. 【强大精美的PS特效滤镜合集】Alien Skin Eye Candy for Mac 7.2.2.20

    [简介] Alien Skin Eye Candy for Mac 7.2.2 版本,支持最新的PhotoShop CC 2019.2018等版本,这是一款强大酷炫的PS特效滤镜合集,具有32种滤镜和 ...

  8. [转]ColorMatrixFilter--颜色矩阵滤镜

    转自: http://blog.sina.com.cn/s/blog_49b35d540100aks4.html ColorMatrixFilter--颜色矩阵滤镜(flash.filters.Col ...

  9. Swift - 给图片添加滤镜效果(棕褐色老照片滤镜,黑白滤镜)

    Core Image是一个强大的滤镜处理框架.它除了可以直接给图片添加各种内置滤镜,还能精确地修改鲜艳程度, 色泽, 曝光等,下面通过两个样例演示如何给UIImage添加滤镜. 1,棕褐色滤镜  -  ...

最新文章

  1. 架构设计之「服务限流」
  2. zz eclipse.ini内存设置
  3. Kitten编程猫里如何先后播放不同的背景音乐
  4. Android开发面试题之求一个数的N次幂手写算法
  5. Python使用装饰器捕获异常,并写入日志,不中断进程
  6. [Asp.net]缓存简介
  7. android data/app下的文件被误删,系统恢复,怎样恢复被误删除的文件
  8. 从零实现一个3D建模软件
  9. MediaWiki配置
  10. 【链表】两个无序链表合并成递增有序链表(利用原表空间)
  11. JPush推送 之 RegistrationID 精确对点推送
  12. 输入法框无法正常显示问题
  13. android实现从耳机和自带麦克风,android插上耳机的时候仍然使用机身的麦克风录音,解决!...
  14. 一个简单的storyboard示例,其中关于添加navigation的部分可以学习,此前没用过
  15. 徒手格斗技巧 源自特种部队 防身必备
  16. HyperLynx(二十七)电源完整性之AC去耦仿真实例(二)
  17. 海康威视设备在Web端显示实时(回放)视频
  18. 计算机强制关机原理,解决PC常见问题 篇十六:究竟如何关机才是正确的姿势---关于“按电源键强制关机对硬件无危害”的...
  19. 常见iOS系统错误代码含义 英文版
  20. vue-直接打开本地文件下的pdf文件

热门文章

  1. “Sensor”的名词解释与概述
  2. 解决Steam需要在线进行更新。请确定您的网络连接正常,然后重试。的问题
  3. c语言——输出字母c
  4. vimdiff简单使用
  5. PTA IP地址转换
  6. ROS系统学习5---OpenCV的使用
  7. FindBugs问题集锦
  8. 在MacOS上构建以太坊开发环境
  9. Windows 11中文官方版正版下载
  10. html如何去除左右滑条,移动端左右两边滑动,并且去除滚动条