LeadTools创建“艺术效果”应用程序的具体步骤

LeadTools是全球最优秀的图形、图像处理开发包,它可以处理各种格式的文件,并包含所有图形、图像的处理和转换功能,支持多种平台。它可以对图像应用各种不同的艺术效果,如在图像上创建三维纹理图案,在图像中添加砖的纹理效果,添加浮雕效果,增加海报效果,添加马赛克效果等等。

操作方法

  • 01

    打开Visual Studio .NET。点击 文件->新建->项目…。打开新建项目对话框后,在模板中选择“Visual C#”或“Visual Basic”,随后选择“Windows窗体应用程序”。在名称栏中输入项目名称“ApplyArtisticEffects”,并使用“浏览”按钮选择您工程的存储路径,点击“确定”。

  • 02

    在“解决方案资源管理器”中,右击“引用”,选择“添加引用”。根据当前工程的 Framework 版本和生成目标平台,选择添加相应的LeadTools控件,例如工程中的版本为 Framework 4.0、生成目标平台是 x86,则浏览选择Leadtools For .NET文件夹” <LEADTOOLS_INSTALLDIR>\Bin\DotNet4\Win32”,选择以下的DLL“: Leadtools.dll Leadtools.Codecs.dll Leadtools.Codecs.Cmp.dll Leadtools.ImageProcessing.Effects.dll Leadtools.ImageProcessing.SpecialEffects.dll Leadtools.WinForms.dll

  • 03

    从工具箱(视图->工具箱),添加12个RadioButton控件(将RadioButton的Text属性依照下表修改),两个Panel控件(Name分别修改为panelBefore和panelAfter)。如下图:

  • 04

    切换至Form1的代码视图(右击Form1,选择查看代码),将下面几行代码添加到文件开始处: 1: using Leadtools; 2: using Leadtools.Codecs; 3: using Leadtools.WinForms; 4: using Leadtools.ImageProcessing; 5: using Leadtools.ImageProcessing.Effects; 6: using Leadtools.ImageProcessing.SpecialEffects;

  • 05

    将以下变量添加至Form1类: 1: private RasterImageViewer beforePic; 2: private RasterImageViewer afterPic; 3: private RasterCodecs codecs; 4: private RasterImage temp;

  • 06

    添加Form1 Load事件句柄,在其中添加以下代码: 1: beforePic = new RasterImageViewer(); 2: beforePic.BackColor = Color.DarkCyan; 3: beforePic.Dock = DockStyle.Fill; 4: beforePic.InteractiveMode = RasterViewerInteractiveMode.Pan; 5: beforePic.HorizontalAlignMode = RasterPaintAlignMode.Center; 6: beforePic.VerticalAlignMode = RasterPaintAlignMode.Center; 7: beforePic.AutoResetScaleFactor = false; 8: panelBefore.Controls.Add(beforePic); 9: beforePic.BringToFront(); 10: 11: afterPic = new RasterImageViewer(); 12: afterPic.BackColor = beforePic.BackColor; 13: afterPic.Dock = beforePic.Dock; 14: afterPic.InteractiveMode = beforePic.InteractiveMode; 15: afterPic.HorizontalAlignMode = beforePic.HorizontalAlignMode; 16: afterPic.VerticalAlignMode = beforePic.VerticalAlignMode; 17: afterPic.AutoResetScaleFactor = beforePic.AutoResetScaleFactor; 18: panelAfter.Controls.Add(afterPic); 19: afterPic.BringToFront(); 20: 21: codecs = new RasterCodecs(); 22: codecs.ThrowExceptionsOnInvalidImages = true; 23: beforePic.Image = codecs.Load(Path.Combine(Application.StartupPath, @"..\..\Pic\Image.jpg"));

  • 07

    双击radioButton1,在radioButton1 CheckedChanged事件句柄中添加以下代码: (本段代码为AddNoiseCommand类的使用) 1: temp = beforePic.Image.Clone(); 2: 3: AddNoiseCommand command = new AddNoiseCommand(); 4: command.Range = 250; 5: 6: command.Channel = RasterColorChannel.Red; 7: command.Run(temp); 8: afterPic.Image = temp; 9: codecs.Save(temp, Path.Combine(Application.StartupPath, @"..\..\Pic\AddNoiseCommand.jpg"), RasterImageFormat.Jpeg, 24); 10:

  • 08

    双击radioButton2,在radioButton2 CheckedChanged事件句柄中添加以下代码: (本段代码为AgingCommand类的使用) 1: temp = beforePic.Image.Clone(); 2: // 准备命令 3: AgingCommand command = new AgingCommand(); 4: command.HorizontalScratchCount = 10; 5: command.VerticalScratchCount = 2; 6: command.MaximumScratchLength = 50; 7: command.DustDensity = 2; 8: command.PitsDensity = 5; 9: command.MaximumPitSize = 6; 10: command.ScratchColor = new RasterColor(255, 255, 0); 11: command.DustColor = new RasterColor(0, 0, 0); 12: command.PitsColor = new RasterColor(0, 0, 255); 13: command.Flags = AgingCommandFlags.AddVerticalScratch | AgingCommandFlags.AddPits | AgingCommandFlags.ScratchInverse | AgingCommandFlags.PitsColor; 14: 15: command.Run(temp); 16: afterPic.Image = temp; 17:

  • 09

    双击radioButton3,在radioButton3 CheckedChanged事件句柄中添加以下代码: (本段代码为BendCommand类的使用) 1: temp = beforePic.Image.Clone(); 2: // 准备命令 3: BendCommand command = new BendCommand(); 4: command.Value = 100; 5: 6: command.CenterPoint = new LeadPoint(temp.Width / 2, temp.Height / 2); 7: command.Flags = BendCommandFlags.Repeat | BendCommandFlags.WithoutRotate | BendCommandFlags.Normal; 8: command.Run(temp); 9: afterPic.Image = temp;

  • 10

    双击radioButton4,在radioButton4 CheckedChanged事件句柄中添加以下代码: (本段代码为BricksTextureCommand类的使用) 1: temp = beforePic.Image.Clone(); 2: // 准备命令 3: BricksTextureCommand command= new BricksTextureCommand(); 4: command.BricksWidth = 60; 5: command.BricksHeight = 20; 6: command.OffsetX = 0; 7: command.OffsetY = 0; 8: command.EdgeWidth = 3; 9: command.MortarWidth = 4; 10: command.ShadeAngle = 315; 11: command.RowDifference = 33; 12: command.MortarRoughness = 20; 13: command.MortarRoughnessEvenness = 0; 14: command.BricksRoughness = 10; 15: command.BricksRoughnessEvenness = 0; 16: command.MortarColor = new RasterColor(0, 0, 0); 17: command.Flags = BricksTextureCommandFlags.SmoothedOutEdges | BricksTextureCommandFlags.TransparentMortar; 18: 19: //在图像上应用砖块纹理 20: command.Run(temp); 21: afterPic.Image = temp;

  • 11

    双击radioButton5,在radioButton5 CheckedChanged事件句柄中添加以下代码: (本段代码为GlowCommand类的使用) 1: temp = beforePic.Image.Clone(); 2: // 准备命令 3: GlowCommand command = new GlowCommand(); 4: command.Dimension = 5; 5: command.Brightness = 3; 6: command.Threshold = 0; 7: // 在图像上应用发光效果 8: command.Run(temp); 9: afterPic.Image = temp;

  • 12

    双击radioButton6,在radioButton6 CheckedChanged事件句柄中添加以下代码: (本段代码为DryCommand类的使用) 1: temp = beforePic.Image.Clone(); 2: 3: DryCommand command = new DryCommand(); 4: command.Dimension = 5; 5: command.Run(temp); 6: afterPic.Image = temp;

  • 13

    双击radioButton7,在radioButton7 CheckedChanged事件句柄中添加以下代码: (本段代码为ImpressionistCommand类的使用) 1: temp = beforePic.Image.Clone(); 2: 3: ImpressionistCommand command = new ImpressionistCommand(); 4: command.HorizontalDimension = 10; 5: command.VerticalDimension = 10; 6: 7: command.Run(temp); 8: afterPic.Image = temp;

  • 14

    双击radioButton8,在radioButton8 CheckedChanged事件句柄中添加以下代码: (本段代码为MosaicTilesCommand类的使用) 1: temp = beforePic.Image.Clone(); 2: 3: MosaicTilesCommand command = new MosaicTilesCommand(); 4: command.BorderColor = new RasterColor(0, 0, 0); 5: command.TilesColor = new RasterColor(255, 255, 255); 6: command.TileWidth = 50; 7: command.TileHeight = 50; 8: command.Opacity = 50; 9: command.ShadowThreshold = 50; 10: command.ShadowAngle = ShadowCommandAngle.East; 11: command.PenWidth = 7; 12: command.Flags = MosaicTilesCommandFlags.Cartesian |MosaicTilesCommandFlags.ShadowGray; 13: command.Run(temp); 14: afterPic.Image = temp;

  • 15

    双击radioButton9,在radioButton9 CheckedChanged事件句柄中添加以下代码: (本段代码为OceanCommand类的使用) 1: temp = beforePic.Image.Clone(); 2: 3: OceanCommand command = new OceanCommand(); 4: command.Amplitude = 20; 5: command.Frequency = 6; 6: command.LowerTransparency = true; 7: command.Run(temp); 8: afterPic.Image = temp;

  • 16

    双击radioButton10,在radioButton10 CheckedChanged事件句柄中添加以下代码: (本段代码为PlaneBendCommand类的使用) 1: temp = beforePic.Image.Clone(); 2: 3: PlaneBendCommand command = new PlaneBendCommand(); 4: command.CenterPoint = new LeadPoint(temp.Width / 2, temp.Height / 2); 5: command.ZValue = 0; 6: command.Distance = temp.Height; 7: command.PlaneOffset = temp.Width / 2; 8: command.Repeat = -1; 9: command.PyramidAngle = 0; 10: command.Stretch = 100; 11: command.BendFactor = 400; 12: command.StartBright = 0; 13: command.EndBright = 100; 14: command.BrightLength = 20000; 15: command.BrightColor = new RasterColor(255, 255, 255); 16: command.FillColor = new RasterColor(0, 0, 0); 17: command.Flags = PlaneCommandFlags.Down | PlaneCommandFlags.Up | PlaneCommandFlags.Color; 18: command.Run(temp); 19: afterPic.Image = temp;

  • 17

    双击radioButton11,在radioButton11 CheckedChanged事件句柄中添加以下代码: (本段代码为RevEffectCommand类的使用) 1: temp = beforePic.Image.Clone(); 2: 3: RevEffectCommand command = new RevEffectCommand(); 4: command.LineSpace = 3; 5: command.MaximumHeight = 35; 6: 7: command.Run(temp); 8: afterPic.Image = temp;

  • 18

    双击radioButton12,在radioButton12 CheckedChanged事件句柄中添加以下代码: (本段代码为ColoredPencilExtendedCommand类的使用) 1: temp = beforePic.Image.Clone(); 2: 3: ColoredPencilExtendedCommand command = new ColoredPencilExtendedCommand(); 4: command.Size = 5; 5: command.Strength = 4; 6: command.Threshold = 0; 7: command.PencilRoughness = 250; 8: command.StrokeLength = 15; 9: command.PaperRoughness = 100; 10: command.Flags = ColoredPencilExtendedCommandFlags.Artistic; 11: command.Run(temp); 12: afterPic.Image = temp;

  • 19

    编译运行程序,本DEMO分别使用了12个类处理图像,对图像应用艺术效果,结果如下图:

(0)

相关推荐

  • MacBook创建加密档案的具体操作步骤

    如果我们不想别人看到我们电脑里面的一些文件,可以创建一个加密档案就可以了.只要创建好,别人没有密码的话是看不到里面的文件的.那么接下来就跟着小编一起来看一下具体创建的步骤吧.具体如下:1.首先打开访达 ...

  • 如何解决win10系统创建任务计划程序找不到远程电脑问题

    现在大部分电脑都是win10系统,有些用户遇到了创建任务计划程序找不到远程电脑问题,不知道如何解决,接下来小编就给大家介绍一下具体的操作步骤.具体如下:1. 首先第一步创建任务计划程序,根据下图所示, ...

  • Windows系统怎么创建任务计划程序

    现在大部分人都在使用Windows电脑,有些新用户不知道怎么创建任务计划程序,接下来小编就给大家介绍一下具体的操作步骤.具体如下:1. 首先第一步找到需要执行的程序.根据下图箭头所指,小编以[QQ.e ...

  • 如何制作自己的微信小程序(自己如何创建微信小程序)

    如何创建微信小程序呢?这是很多没有小程序的小伙伴经常问的问题,现在小程序给我们带来很多便利,而且很多企业公司也会有自己的小程序提供给他们的客户使用.那么创建微信小程序的步骤是什么呢,下面跟大家说说如何 ...

  • Win7自带恢复功能创建系统还原盘的图文步骤

    Windows 7系统为用户提供了可创建还原系统盘的功能,而同样的功能可以在Windows 7安装盘中找到。如果没有安装盘(比如笔记本电脑的OEM版),或者安装盘丢失或损坏,可以通过这样的方式来自建系 ...

  • 服务器上创建本地用户账户的操作步骤

    本地用户账户是工作在本地计算机上的,只有xp系统管理员才能在本地创建用户账户。服务器上创建本地账户lichimhui的操作步骤如下。 1、打开“计算机管理”窗口 执行【开始】丨【管理工具】丨【计算机管 ...

  • Parallels Desktop停止Windows程序详细操作步骤

    Parallels Desktop停止Windows程序详细操作步骤 在Parallels Desktop中要立即停止Windows与所有打开的Windows程序,请进行以下当中的一项操作: 点击菜单 ...

  • 微信公众平台创建门店小程序的两种方法

    4月27日消息,微信公众平台宣布,在公众平台里可以快速创建门店小程序.运营者只需要简单填写自己企业或者门店的名称.简介.营业时间.联系方式.地理位置和图片等信息,不需要复杂的开发,就可以快速生成一个类 ...

  • vs2015怎么创建控制台应用程序?

    Visual Studio经常创建控制台应用程序,下面我们就来看看详细的创建方便. 1.单击开始---->所有程序---->Visual Studio 2015,选择Visual Stud ...