←选择平台

RasterImageTypeConverter类

总结

RasterImageTypeConverter是一个可以用来转换的类吗RasterImage来自其他数据类型的对象。

语法
c#
VB
c++
公共RasterImageTypeConverter: TypeConverter
公共RasterImageTypeConverter继承了System.ComponentModel.TypeConverter
公共ref类RasterImageTypeConverter:公共System.ComponentModel.TypeConverter
讲话

请注意:本课题是RasterCodecs使用.NET提供异步支持System.ComponentMode.AsyncOperation模型。为。net异步/等待支持此类型/成员不使用。相反,请参考RasterCodecs异步操作

该类派生于标准的.NET TypeConverter类,提供转换功能RasterImage来自其他数据类型的对象。

支持以下数据类型:

  • 包含带有可选参数的图像文件的URL的Uri。
  • 包含带有可选参数的映像文件路径的字符串。
  • 包含映像文件数据的流。
  • 包含映像文件数据的字节数组。

CanConvertFrom方法将返回真正的类中传递的任何受支持的对象类型sourceType参数。然而,这并不意味着转换操作将成功,这取决于数据是否包含LEADTOOLS可以加载的有效图像。

ConvertFrom方法将尝试将传入的对象转换为价值参数设置为有效的RasterImage对象。

对于Uri和String源对象,LEADTOOLS支持作为标准HTML查询字符串传递的可选额外参数,以微调加载RasterImage对象。参数说明如下表所示:

参数 描述
LeadBitsPerPixel

产生的图像像素深度。这应该是一个整数的字符串表示形式。有效值为:

价值 意义
0 保持原始文件的像素深度(不进行转换)。
1 ~ 8 结果图像中每个像素的指定位。
12 结果图像中每像素12位。
16 结果图像中每像素16位。
24 结果图像中的每像素为24位。
32 结果图像中的每像素32位。
48 结果图像中的每像素48位。
64 结果图像中的每像素64位。
LeadOrder

颜色顺序为16位、24位、32位、48位和64位图像。如果生成的图像小于每像素16位,这将不起作用,因为托盘化的图像没有顺序。必须是以下字符串值之一:

价值 意义
Rgb 记忆中的红、绿、蓝颜色顺序
Bgr 记忆中的蓝、绿、红颜色顺序
灰色的 12或16位灰度图像。仅支持12位和16位灰度图像文档/医学影像版本。
RgbOrGray 将图像加载为红色、绿色、蓝色或12位或16位灰度图像。格式中支持12位和16位灰度图像文档/医学影像版本
BgrOrGray 将图像加载为蓝色、绿色、红色或12位或16位灰度图像。格式中支持12位和16位灰度图像文档/医学影像版本
罗姆 罗姆秩序。ROMM仅支持24位和48位映像
BgrOrGrayOrRomm 将图像加载为蓝色、绿色、红色或作为12位或16位灰度图像或作为rom。格式中支持12位和16位灰度图像文档/医学影像版本只。ROMM仅支持24位和48位彩色图像。
LeadFirstPage

一个字符串,它包含要加载的第一页基于1的索引的整数表示形式。

LeadLastPage

一个字符串,它包含要加载的最后一页基于1的索引的整数表示形式。如果指定,必须大于或等于“LeadFirstPage”。

LeadUseWriteableBitmap

不再支持此值。

LeadUseNativeLoad

不再支持此值。

价值 意义
0 保持原始文件的像素深度(不进行转换)。
1 ~ 8 结果图像中每个像素的指定位。
12 结果图像中每像素12位。
16 结果图像中每像素16位。
24 结果图像中的每像素为24位。
32 结果图像中的每像素32位。
48 结果图像中的每像素48位。
64 结果图像中的每像素64位。
价值 意义
Rgb 记忆中的红、绿、蓝颜色顺序
Bgr 记忆中的蓝、绿、红颜色顺序
灰色的 12或16位灰度图像。仅支持12位和16位灰度图像文档/医学影像版本。
RgbOrGray 将图像加载为红色、绿色、蓝色或12位或16位灰度图像。格式中支持12位和16位灰度图像文档/医学影像版本
BgrOrGray 将图像加载为蓝色、绿色、红色或12位或16位灰度图像。格式中支持12位和16位灰度图像文档/医学影像版本
罗姆 罗姆秩序。ROMM仅支持24位和48位映像
BgrOrGrayOrRomm 将图像加载为蓝色、绿色、红色或作为12位或16位灰度图像或作为rom。格式中支持12位和16位灰度图像文档/医学影像版本只。ROMM仅支持24位和48位彩色图像。

所有这些参数都是可选的,应该作为标准HTML查询字符串传递。顺序并不重要。下面是一些有效字符串的例子:

//加载HTTP URL托管的TIF文件中的所有页面http:/ / tempuri.org/MyImage.tif//只加载HTTP URL托管的多页TIF文件的第一页http:/ / tempuri.org/MyImage.tif ? LeadFirstPage = 1 &leadlastpage = 1//加载托管在HTTP URL上的多页TIF文件的第二和第三页,以24位/像素的RGB颜色顺序http:/ / tempuri.org/MyImage.tif ? LeadBitsPerPixel = 24 &leadorder = Rgb&LeadFirstPage &leadlastpage = 3 = 2//加载FTP站点上托管的TIF文件中的所有页面ftp:/ / tempuri.org/MyImage.tif//将TIF文件中的所有页面加载到磁盘文件中C: \ Dir \ MyImage.tif文件:/ / C: / Dir / MyImage.tif文件:/ / myserver / MyImage.tif//将多页TIF文件的第二页和第三页以24位/像素的RGB颜色顺序加载到磁盘文件中C: \ Dir \模板\ MyImage.tif吗?LeadBitsPerPixel=24&LeadOrder=Rgb&LeadFirstPage=2&LeadLastPage=3

RasterImageTypeConverter也用于从XAML加载资源图像作为RasterImage.以下是一些例子:

//将TIF文件集中的所有页面加载为资源“MyImage.tif”//只加载多页TIF文件集的第一页作为资源“MyImage.tif ?LeadFirstPage=1&LeadLastPage=1"//加载多页TIF文件集的第二页和第三页作为资源,以24位/像素的RGB颜色顺序“MyImage.tif ?LeadBitsPerPixel = 24 &leadorder = Rgb&LeadFirstPage = 2 &leadlastpage = 3”//加载多页TIF文件集的第二页和第三页作为资源,以24位/像素的RGB颜色顺序“MyImage.tif ?LeadBitsPerPixel = 24 &leadorder = Rgb&LeadFirstPage = 2 &leadlastpage = 3”//不再支持。“MyImage.tif ?LeadUseWriteableBitmap = True”//不再支持。“MyImage.tif ?LeadUseWriteableBitmap = True&LeadUseNativeLoad = True "

String和Byte数据类型数组不支持查询字符串。

WPF控件使用RasterImageTypeConverter加载RasterImageXAML文件。

返回的图像ConvertFrom方法将有其RasterImage。IsLoading属性设置为true,因为此方法将异步加载图像。控件可在图像完成加载时获得通知RasterImageTypeConverter用你自己的RasterCodecs实例并订阅RasterCodecs。LoadAsyncCompleted事件。ConvertFrom如下面的例子所示。

例子

这个例子将使用RasterImageTypeConverter从URL加载图像。

c#
使用Leadtools;使用Leadtools.Codecs;公共无效RasterImageTypeConverterExample (){字符串srcFileName = Path.Combine(LEAD_VARS.ImagesDir,“Ocr1.tif”);//构造源URL以使用源文件并加载图像Uri =Uri (srcFileName);RasterCodecs codecs =RasterCodecs ();//创建一个RasterImageTypeConverter类的新实例RasterImageTypeConverter =RasterImageTypeConverter(编码器);//我们应该能够从一个URL转换Debug.Assert (rasterImageConverter.CanConvertFrom (uri.GetType ()));//转换图像// RasterImageTypeConverter的返回值。ConvertFrom可能就是一个图像//仍在加载中。所以,我们必须订阅RasterCodecs。LoadAsyncCompleteted// event获取完成的图像编解码器。LoadAsyncCompleted + =EventHandler < CodecsLoadAsyncCompletedEventArgs > (rasterImageTypeConverterExample_LoadAsyncCompleted);对象rasterImageObject = rasterImageConverter.ConvertFrom(uri);//注意返回的rasterImageObject是一个IsLoading设置为true的RasterImage//当loadasynccompleted完成时,IsLoading将为false(因此,对象将可用)/ /火灾。私人无效rasterImageTypeConverterExample_LoadAsyncCompleted (对象发件人,CodecsLoadAsyncCompletedEventArgs{//检查用户是否取消或是否有错误如果(e.Cancelled){控制台。WriteLine (“用户取消”);其他的如果(e.Error ! ={控制台。WriteLine (错误:“+ e.Error.Message);其他的{//一切正常,获取图像RasterImage image = e.Image;控制台。WriteLine (Image at {0} loaded OK, size: {1} by {2}, e.Uri,图像。宽度,image.Height);image.Dispose ();//取消订阅事件并释放RasterCodecs对象RasterCodecs codecs =发送者作为RasterCodecs;编解码器。LoadAsyncCompleted - =EventHandler < CodecsLoadAsyncCompletedEventArgs > (rasterImageTypeConverterExample_LoadAsyncCompleted);codecs.Dispose ();静态LEAD_VARS{公共常量字符串ImagesDir =@“C: \ LEADTOOLS21 \ Resources \图片”
需求

目标平台

Leadtools。编解码器的组装
188金宝搏的网址客服|支持|联系我们|知识产权公告
©1991 - 2021领德科技有限公司版权所有。