LEADTOOLS支持加载和保存图像使用。net的异步操作异步和等待功能。这种支持包括在。net标准工具包和添加通过扩展方法在。net框架使用的工具包Leadtools.Async.dll组装。
的RasterCodecs类包含以下异步处理图像的方法:
所有这些方法接受一个类型的对象作为第一个参数ILeadStream决定输入流(在负载或获取信息)或输出流(拯救)使用。方法返回一个。net任务对象与结果,可以使用异步关键字。
ILeadStream是一个接口,具有以下LEADTOOLS实现:
| 类 | 描述 |
|---|---|
| LeadStream | ILeadStream支持任何。netSystem.IO.Stream |
| LeadFileStream | ILeadStream支持磁盘物理文件。 |
| HttpClientLeadStream | ILeadStream支持远程URL |
主要的实现LeadStream类包装一个。netSystem.IO.Stream。LeadStream还包含了工厂可用于快速创建的类成员ILeadStream对象形成各种输入或输出源。
LeadStream.Factory.FromStream:包装一个。netSystem.IO.Stream。如果输入/输出图像数据在. net流,然后简单地创建一个新的ILeadStream使用以下:
System.IO.Streamstream = ...ILeadStream leadStream = LeadStream.Factory.FromStream(流);
例如,下面的代码片段将加载一个图像从。net内存流:
公共静态异步任务的例子(){/ /文件加载到内存流字符串文件名=@“C: \ LEADTOOLS21 \资源\ \ ocr1.tif图像”;使用(流流=新MemoryStream (File.ReadAllBytes(文件名))){/ /创建一个从. net ILeadStream流使用(ILeadStream leadStream = LeadStream.Factory.FromStream(流)){/ /异步加载图片使用(varrasterCodecs =新RasterCodecs ()){使用(RasterImage图像=等待rasterCodecs.LoadAsync (leadStream)){/ /使用的图像Console.WriteLine ($“加载图片,尺寸是{形象。宽度},{形象。高度}像素”);}}}}}
的FromStream方法接受的autoDisposeStream布尔参数,假默认情况下。这个参数决定的所有权底层流并将到ILeadStream.DisposeStream财产。例如,上面的代码可以修改如下内存流的所有权转移ILeadStream因此时将处理leadStream处理对象:
/ /使用从这里移除流流=新MemoryStream (File.ReadAllBytes(文件名));/ /创建一个从. net ILeadStream流/ /通过真正的所有权转移到ILeadStream:使用(ILeadStream leadStream = LeadStream.Factory.FromStream(流,真正的)){/ /应该是正确的:System.Diagnostics.Debug.Assert (leadStream.DisposeStream);/ /异步加载图片使用(varrasterCodecs =新RasterCodecs ()){使用(RasterImage图像=等待rasterCodecs.LoadAsync (leadStream)){/ /使用的图像Console.WriteLine ($“加载图片,尺寸是{形象。宽度},{形象。高度}像素”);}}/ /下一个语句处理ILeadStream既然DisposeStream财产是真的,也/ /“流”也将处理}
FromStream支持seekable和non-seekable流。如果non-seekable流,它将在内部使用RasterCodecs饲料加载机制来执行动作。指RasterCodecs.StartFeedLoad为更多的信息。示例使用non-seekable流(在这个例子中,一个流的资源远程URL):
使用(varhttpClient =新HttpClient ()){varurl =“https://demo.leadtools.com/images/tiff/ocr1.tif”;使用(var流=等待httpClient.GetStreamAsync (url)){/ /创建一个从. net ILeadStream流使用(ILeadStream leadStream = LeadStream.Factory.FromStream(流)){/ /异步加载图片使用(varrasterCodecs =新RasterCodecs ()){使用(RasterImage图像=等待rasterCodecs.LoadAsync (leadStream)){/ /使用的图像Console.WriteLine ($“加载图片,尺寸是{形象。宽度},{形象。高度}像素”);}}}}}
的HttpClientLeadStream的实现ILeadStream旨在执行完全按照上面的和LeadStream.Factory包含了LeadStream.Factory.FromUri辅助方法用于创建ILeadStream从。net对象Uri对象。例如,上面的代码可以简化如下:
varurl =“https://demo.leadtools.com/images/tiff/ocr1.tif”;/ /创建一个ILeadStream URI使用(ILeadStream leadStream =等待LeadStream.Factory.FromUri (新Uri (url))){/ /异步加载图片使用(varrasterCodecs =新RasterCodecs ()){使用(RasterImage图像=等待rasterCodecs.LoadAsync (leadStream)){/ /使用的图像Console.WriteLine ($“加载图片,尺寸是{形象。宽度},{形象。高度}像素”);}}}
HttpClientLeadStream自动创建一个. netHttpClient在静态对象和设置它HttpClientLeadStream.HttpClient使用,可用于自定义选项。
的LeadFileStream的实现ILeadStream是一个设计来处理磁盘上的物理文件。一个对象可以创建所需的访问和共享模式或使用LeadStream.Factory.OpenFile和LeadStream.Factory.CreateFile助手方法如下:
字符串inputFileName =@“C: \ LEADTOOLS21 \资源\ \ ocr1.tif图像”;字符串outputFileName =@“C: \ LEADTOOLS21 \资源\ \ ocr1-saved.png图像”;RasterImage形象;使用(varrasterCodecs =新RasterCodecs ()){/ /创建一个ILeadStream从输入文件使用(ILeadStream leadStream = LeadStream.Factory.OpenFile (inputFileName)){/ /异步加载图片形象=等待rasterCodecs.LoadAsync (leadStream);}/ /创建一个ILeadStream输出文件/ /创建一个ILeadStream从输入文件使用(ILeadStream leadStream = LeadStream.Factory.CreateFile (outputFileName)){/ /保存图片异步等待rasterCodecs。SaveAsync(图像、leadStream RasterImageFormat。Png, 0);}}
帮助收藏
光栅net|C API|c++类库|HTML5 JavaScript
文档net|C API|c++类库|HTML5 JavaScript
医疗net|C API|c++类库|HTML5 JavaScript
医疗Web查看器net
188宝金博怎么下载
支持的平台上
net, Java, Android和iOS / macOS组件
C / c++类库的API
HTML5 JavaScript库
