本教程展示了如何将图像与背景图像的透明区域上c# Windows控制台应用程序,它使用LEADTOOLS图像处理类。
概述 | |
---|---|
总结 | 本教程介绍了如何结合两幅图像使用c# Windows控制台应用程序的透明度。 |
完成时间 | 30分钟 |
Visual Studio项目 | 下载教程项目(231 KB) |
平台 | c# Windows控制台应用程序 |
IDE | Visual Studio 2019中,2022年 |
开发许可 | 下载LEADTOOLS |
试试用另一种语言 |
|
熟悉基本的步骤创建一个项目的审查添加引用和设置一个许可证教程,在工作之前结合图片和透明度——c#控制台教程。
从项目中创建的副本添加引用和设置一个许可证教程。如果项目不可用,按照这个教程中的步骤创建它。
的引用需要取决于项目的目的。引用可以通过添加一个或另一个下面的两种方法(但不是全部)。对于这个项目,还需要以下引用:
如果使用NuGet引用,本教程需要以下NuGet包:
Leadtools.Formats.Raster.Common
Leadtools.Image.Processing
如果使用本地DLL的引用,下面的DLL是必要的。dll位于< INSTALL_DIR > \ LEADTOOLS22 \ Bin \ Dotnet4 \ x64
:
Leadtools.dll
Leadtools.Codecs.dll
Leadtools.Codecs.Cmp.dll
Leadtools.Codecs.Png.dll
Leadtools.ImageProcessing.Effects.dll
对于一个完整的列表的应用程序所需的DLL文件,请参考文件包含在您的应用程序。
许可解锁项目需要的特性。它必须设置工具箱函数被调用之前。详情,包括教程为不同的平台,请参考设置一个运行时许可。
有两种类型的运行时许可证:
与项目创建、添加引用,许可,可以开始编码。
开放Program.cs
在解决方案资源管理器和添加以下语句使用块顶部。
/ /使用块
使用系统;
使用先;
使用Leadtools;
使用Leadtools.Codecs;
使用Leadtools.ImageProcessing.Effects;
添加以下代码Main ()
方法调用SetLicense ()
将加载一个图像包含透明度以及创建一个纯色背景图像,将结合。
/ /下面的代码添加到Main()方法调用后SetLicense ()
/ /请参见下面的Note获得imagePlusAlpha.png
字符串fileWithAlpha =@“imagePlusAlpha.png文件路径”;
使用(RasterCodecs编解码器=新RasterCodecs ())
{
CodecsImageInfo信息= codecs.GetInformation (fileWithAlpha,假);
如果(info.HasAlpha)
{
RasterImage backgroundImage = RasterImage.Create(信息。宽度、信息。24岁的高度信息。XResolution RasterColor.FromKnownColor (RasterKnownColor.CornflowerBlue));
RasterImage imageWithAlpha =编解码器。32岁的负载(fileWithAlpha CodecsLoadByteOrder。Bgr 1 1);
RasterImage combinedImage = CombineTransparentImage (imageWithAlpha、分辨率);
codecs.Save (combinedImage@“C: \ LEADTOOLS22 \资源\ \ combinedImage.jpg图像”,RasterImageFormat。Jpeg411、24);
}
}
使用下面的代码来添加一个新方法CombineTransparentImage
将结合纯色背景图像的透明图像加载使用FeatherAlphaBlendCommand
图像处理类。
静态RasterImage CombineTransparentImage (RasterImage imageWithAlpha RasterImage分辨率)
{
RasterImage maskImage = imageWithAlpha.CreateAlphaImage ();
RasterImage outputImage = backgroundImage.Clone ();
LeadRect矩形=新LeadRect (0, 0, outputImage。宽度,outputImage.Height);
FeatherAlphaBlendCommand混合=新FeatherAlphaBlendCommand (imageWithAlpha新LeadPoint(0, 0),矩形,maskImage);
blend.Run (outputImage);
返回outputImage;
}
使用MemoryStream
加载文件,替换现有的代码Main ()
用以下方法:
静态无效主要(字符串[]参数)
{
试一试
{
SetLicense ();
/ /请参见下面的Note获得imagePlusAlpha.png
字符串fileWithAlpha =@“C: \ LEADTOOLS22 \资源\ \ imagePlusAlpha.png图像”;
使用(RasterCodecs编解码器=新RasterCodecs ())
{
/ /加载使用内存流
字节[]fileWithAlphaData = File.ReadAllBytes (fileWithAlpha);
使用(MemoryStream fileWithAlphaStream =新MemoryStream (fileWithAlphaData))
{
CodecsImageInfo信息= codecs.GetInformation (fileWithAlphaStream,假);
如果(info.HasAlpha)
{
RasterImage backgroundImage = RasterImage.Create(信息。宽度、信息。24岁的高度信息。XResolution RasterColor.FromKnownColor (RasterKnownColor.CornflowerBlue));
RasterImage imageWithAlpha = codecs.Load (fileWithAlphaStream);
RasterImage combinedImage = CombineTransparentImage (imageWithAlpha、分辨率);
/ /保存到内存流
MemoryStream outputStream =新MemoryStream ();
codecs.Save (combinedImageoutputStream, RasterImageFormat.Jpeg411, 24);
}
}
}
}
抓(异常交货)
{
Console.WriteLine (ex.ToString ());
}
Console.WriteLine (“按任意键退出……”);
Console.ReadKey (真正的);
}
请注意
透明的图像用于本教程,imagePlusAlpha.png,可以从本教程中的代码的输出,为图像增加透明度,c#控制台一个示例图像增加透明度。
按运行项目F5,或通过选择调试- >开始调试。
如果遵循正确的步骤,应用程序运行和加载图像包含透明alpha通道然后结合纯色背景图像。结果然后保存到磁盘上的文件。
本教程展示了如何添加必要的引用将透明图像与纯色背景使用FeatherAlphaBlendCommand
类。