加载图像从一个缓冲- c#控制台

本教程展示了如何创建一个c# Windows控制台应用程序,加载一个图像从一个缓冲区。

概述
总结 本教程介绍了如何装载图像从一个缓冲c# Windows控制台应用程序
完成时间 30分钟
Visual Studio项目 下载教程项目(3 KB)
平台 c# Windows控制台应用程序
IDE Visual Studio 2017中,2019年
开发许可 下载LEADTOOLS
试试用另一种语言

所需的知识

熟悉基本的步骤创建一个项目的审查添加引用和设置一个许可证教程,在工作之前加载图像从一个缓冲- c#控制台教程。

创建项目并添加LEADTOOLS引用

从项目中创建的副本添加引用和设置一个许可证教程。如果你没有这个项目,按照这个教程中的步骤创建它。

的引用需要取决于项目的目的。引用可以通过添加一个或另一个下面的两种方法(但不是全部)。对于这个项目,还需要以下引用:

如果使用NuGet引用,本教程需要以下NuGet包:

如果使用本地DLL的引用,下面的DLL是必要的。dll位于< INSTALL_DIR > \ LEADTOOLS21 \ Bin \ Dotnet4 \ x64:

对于一个完整的列表的编解码器dll需要特定的格式,请参考文件格式的支持

设置许可文件

许可解锁项目需要的特性。它必须设置工具箱函数被调用之前。详情,包括教程为不同的平台,请参考设置一个运行时许可

有两种类型的运行时许可证:

请注意

添加LEADTOOLS NuGet和本地引用设置许可中会详细介绍添加引用和设置一个许可证教程。

添加加载图片代码

与项目创建、添加引用,许可,可以开始编码。

解决方案资源管理器,打开Program.cs。添加以下语句的使用块顶部。

c#
使用系统;使用先;使用Leadtools;使用Leadtools.Codecs;使用System.Runtime.InteropServices;

下面的代码显示了3从缓冲区加载图像的方法:

  1. 当图像数据在一个字节数组。
  2. 当图像存储在内存的指针引用的。
  3. 当图像到一个base - 64编码的文本字符串。对于这种情况,提供一个示例文本文件,可以下载使用这个链接

添加一个新方法LoadImageBuffer ()然后在调用它Main ()方法。添加以下代码来加载一个图像从一个缓冲区。

c#
不安全的静态无效LoadImageBuffer (){使用(RasterCodecs编解码器=RasterCodecs ()){字符串文件名=@“C: \ LEADTOOLS21 \资源\ \ image1.cmp图像”;字节[]缓冲= File.ReadAllBytes(文件名);/ / 1。加载图像从一个字节数组缓冲区MemoryStream女士=MemoryStream(缓冲);使用(RasterImage图像= codecs.Load(女士)Console.WriteLine ($“图像加载成功!{\ nImage大小的形象。ImageWidth} {image.ImageHeight} \ n”);/ /文件数据加载到一个非托管指针IntPtr ptr = Marshal.AllocHGlobal (buffer.Length);元帅。复制(缓冲区,0,ptr buffer.Length);/ / 2。从内存加载图像使用非托管指针UnmanagedMemoryStream unmanagedStream =UnmanagedMemoryStream ((字节*)ptr.ToPointer (), buffer.Length);使用(RasterImage图像= codecs.Load (unmanagedStream))Console.WriteLine ($“图像加载成功!{\ nImage大小的形象。ImageWidth} {image.ImageHeight} \ n”);unmanagedStream.Dispose ();Marshal.FreeHGlobal (ptr);/ / base - 64编码的图像从文本文件加载到字符串字符串b64String = File.ReadAllText (@“C: \ LEADTOOLS21 \资源\ \ Load-Image-from-a-Buffer-base64-image.txt图像”);/ / 3。加载图像从Base64编码的字符串如果(b64String ! =){字节[]字节= Convert.FromBase64String (b64String);使用(MemoryStream b64ms =MemoryStream(字节)使用(RasterImage图像= codecs.Load (b64ms))Console.WriteLine ($“图像加载成功!{\ nImage大小的形象。ImageWidth} {image.ImageHeight}”);}}}

请注意

为了能够编译这段代码,打开项目属性的项目菜单然后去构建选项卡并启用允许不安全代码选择。

运行该项目

按运行项目F5,或通过选择调试- >开始调试

如果步骤正确之后,应用程序运行和负载上面支持的任何图像编解码器过滤器从缓冲区。应用程序还允许选择加载映像从Base64字符串。

总结

本教程展示了如何装载图像从一个缓冲区。同时,它展示了如何使用RasterCodecsRasterImage类。

另请参阅

net
iOS
188金宝搏的网址客服|支持|联系我们|知识产权的通知
©1991 - 2021领先的技术公司。保留所有权利。