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库