LEADTOOLS画像ファイルサポート(Leadtools.Codecsアセンブリ)

フレームを表示

RasterImageTypeConverterクラス








メンバ 
RasterImageTypeConverterは、他のデータ型からRasterImageオブジェクトを変換するのに用いられることができるクラスです。
オブジェクトモデル
構文
public class RasterImageTypeConverter : System.ComponentModel.TypeConverter 
'Declaration
 
Public Class RasterImageTypeConverter 
   Inherits System.ComponentModel.TypeConverter
'Usage
 
Dim instance As RasterImageTypeConverter
public sealed class RasterImageTypeConverter : System.ComponentModel.TypeConverter 
function Leadtools.Codecs.RasterImageTypeConverter()
public ref class RasterImageTypeConverter : public System.ComponentModel.TypeConverter 
解説

このクラスはTypeConverterが分類する.NETが他のデータ型からRasterImageオブジェクトを変換するために機能性に提供する標準から派生

以下のデータ型はサポートされます:

サポートされたオブジェクトタイプのいずれかがソースタイプパラメーターに渡されるならば、CanConvertFromメソッドはtrue返ります。しかし、これは変換操作が成功することを意味しません、これはデータがLEADTOOLSがロードすることができる有効なimageを格納するかどうかに依存します。

メソッドが有効なRasterImageに値引数に渡されるオブジェクトを変換するためにためすConvertFromオブジェクト。

ウーリStringソースオブジェクトのために、LEADTOOLSは、RasterImageオブジェクトのロードを微調整する標準的なHTML問合せstringとして渡されるおまけパラメータをサポートします。以下のテーブルは、これらのパラメータをリストします:

パラメーター 説明
LeadBitsPerPixel

結果として生じるimageビット数。これは、整数の文字列表現でなければなりません。有効値は以下の通りです:

意味
0 オリジナルファイルのビット数(変換しません)を保持します。
8への1 結果として生じるimageの指定されたピクセル当たりビット。
12 結果として生じるimageの12ビット/ピクセル。
16 結果として生じるimageの16ビット/ピクセル。
24 結果として生じるimageの24ビット/ピクセル。
32 結果として生じるimageの32ビット/ピクセル。
48 結果として生じるimageの48ビット/ピクセル。
64 結果として生じるimageの64ビット/ピクセル。
LeadOrder

16-、24-、32-、48-と64ビットイメージのためのカラーオーダー。結果として生じる画像が16ビット/ピクセル未満である場合、パレット画像にはオーダーがないため影響はありません。これは、以下の文字列値の1つでなければなりません:

意味
Rgb メモリ内に赤・緑・青のカラーオーダー。
Bgr メモリ内にBlue、緑と赤のカラーオーダー。
グレー 12または16ビットグレースケールimage。12ビットと16ビットのグレースケールイメージは、Document/Medical画像化版でのみサポートされます。
RgbOrGray 赤い、緑、青として、または12ビットまたは16ビットのグレースケールimageとして画像をロードします。12ビットと16ビットのグレースケールイメージは、Document/Medical画像化版でサポートされます。
BgrOrGray 青、緑、赤として、または12ビットまたは16ビットのグレースケールimageとして画像をロードします。12ビットと16ビットのグレースケールイメージは、Document/Medical画像化版でサポートされます。
ロンム ROMMオーダー。ROMMは、24ビットと48ビットのイメージのみをサポートします。
BgrOrGrayOrRomm 青、緑、赤として、または12ビットまたは16ビットのグレースケールimageとして、またはROMMとして画像をロードします。12ビットと16ビットのグレースケールイメージは、ドキュメント/Medical Imaging版でのみサポートされます。ROMMは、24ビットと48ビットのカラーイメージのみをサポートします。
LeadFirstPage

ロードするために最初のページの1から始まるインデックスの整数表現を格納するstring。

LeadLastPage

ロードするために最後のページの1から始まるインデックスの整数表現を格納するstring。指定されたならば、「LeadFirstPage」以上でなければなりません。

LeadUseWriteableBitmap

Silverlightのためにだけ:CodecsLoadOptions.UseWriteableBitmapを設定するのに用いられる値のブールの表現を格納するstring。これが省略されるならば、falseが使われます。値でこのパラメーターを追加するならば、結果として生じるRasterImageはバックエンドデータとして「WriteableBitmap」でロードされます。詳細については、「CodecsLoadOptions.UseWriteableBitmap」を参照してください。

LeadUseNativeLoad

Silverlightのためにだけ:CodecsLoadOptions.UseNativeLoadを設定するのに用いられる値のブールの表現を格納するstring。これが省略されるならば、falseが使われます。値でこのパラメーターを追加するならば、結果として生じるRasterImageはLEADTOOLSの代わりにネイティブフィルタコーデックでロードされます。詳細については、「CodecsLoadOptions.UseNativeLoad」を参照してください。

すべてのこれらのパラメータはオプションで、標準的なHTML問合せstringとして渡されなければなりません。命令は、重要でありません。有効な文字列の2、3の例は、ここにあります:

            // Load all the pages in the TIF file hosted at an HTTP URL
            http://tempuri.org/MyImage.tif
            // Load the first page only of the multi-page TIF file hosted at an HTTP URL
            http://tempuri.org/MyImage.tif?LeadFirstPage=1&LeadLastPage=1
            // Load the second and third page of the multi-page TIF file hosted at an HTTP URL as 24 bits/pixel with RGB color order
            http://tempuri.org/MyImage.tif?LeadBitsPerPixel=24&LeadOrder=Rgb&LeadFirstPage=2&LeadLastPage=3
            // Load all the pages in the TIF file hosted at an FTP site
            ftp://tempuri.org/MyImage.tif
            // Load all the pages in the TIF file in a disk file
            C:\Dir\MyImage.tif
            file:://C:/Dir/MyImage.tif
            file:://myserver/MyImage.tif
            // Load the second and third page of the multi-page TIF file in a disk file as 24 bits/pixel with RGB color order
            C:\Dir\MyImage\MyImage.tif?LeadBitsPerPixel=24&LeadOrder=Rgb&LeadFirstPage=2&LeadLastPage=3
            
RasterImageTypeConverterも、RasterImageとしてXAMLから資源imageをロードするとき、使われます。2、3のサンプルは、ここにあります:
            // Load all the pages in the TIF file set as resource
            "MyImage.tif"
            // Load the first page only of the multi-page TIF file set as a resource
            "MyImage.tif?LeadFirstPage=1&LeadLastPage=1"
            // Load the second and third page of the multi-page TIF file set as a resource as 24 bits/pixel with RGB color order
            "MyImage.tif?LeadBitsPerPixel=24&LeadOrder=Rgb&LeadFirstPage=2&LeadLastPage=3"
            // Load the second and third page of the multi-page TIF file set as a resource as 24 bits/pixel with RGB color order
            "MyImage.tif?LeadBitsPerPixel=24&LeadOrder=Rgb&LeadFirstPage=2&LeadLastPage=3"
            // Silverlight only: Load the image and set it as a WriteableBitmap in a RasterImage
            "MyImage.tif?LeadUseWriteableBitmap=True"
            // Silverlight only: Load the PNG image using Silverlight and set it as a WriteableBitmap in a RasterImage
            "MyImage.tif?LeadUseWriteableBitmap=True&LeadUseNativeLoad=True"
            

問合せstringは、StringByteデータ型の配列のためにサポートされません。

LEADTOOLS WPFとSilverlightコントロールは、XAMLファイルからRasterImageをロードするために、RasterImageTypeConverterを使います。

このメソッドが非同期でimageをロードするため、ConvertFromメソッドから返されるimageにはtrueにitsRasterImage.IsLoadingプロパティセットがあります。imageがロードするを完了したとき、通知されるために、RasterImageTypeConverterを作成しますで独自の下記のサンプルのショーとしてConvertFromを呼び出すことの前のRasterCodecs.LoadAsyncCompletedイベントへのRasterCodecsインスタンスと定期購読。

サンプル

このサンプルは、URLからimageをロードするために、RasterImageTypeConverterを使います。

Copy Code  
Imports Leadtools
Imports Leadtools.Codecs
Imports Leadtools.ImageProcessing
Imports Leadtools.ImageProcessing.Color

      
Public Sub RasterImageTypeConverterExample()
   Dim srcFileName As String = Path.Combine(LEAD_VARS.ImagesDir, "Ocr1.tif")
   ' Construct the source URL to use the source file and load the image
   Dim uri As New Uri(srcFileName)

   Dim codecs As New RasterCodecs()

   ' Create a new instance of the RasterImageTypeConverter class
   Dim rasterImageConverter As New RasterImageTypeConverter(codecs)

   ' We should be able to convert from a URL
   Debug.Assert(rasterImageConverter.CanConvertFrom(uri.GetType()))

   ' Convert the image

   ' The return value from RasterImageTypeConverter.ConvertFrom might be an image that is
   ' still loading. So, we must subscribe to the RasterCodecs.LoadAsyncCompleteted
   ' event to obtain the finished image
   AddHandler codecs.LoadAsyncCompleted, AddressOf rasterImageTypeConverterExample_LoadAsyncCompleted
   Dim rasterImageObject As Object = rasterImageConverter.ConvertFrom(uri)

   ' Notice that the returned rasterImageObject is a RasterImage with IsLoading set to true at this point
   ' The IsLoading will be false (and hence, the object will be usable) when the LoadAsyncCompleteted
   ' fires.
End Sub

Private Sub rasterImageTypeConverterExample_LoadAsyncCompleted(ByVal sender As Object, ByVal e As CodecsLoadAsyncCompletedEventArgs)
   ' Check if the user canceled or if we have errors
   If e.Cancelled Then
      Console.WriteLine("Canceled by the user")
   ElseIf Not IsNothing(e.Error) Then
      Console.WriteLine("Error: " + e.Error.Message)
   Else
      ' Everything is OK, get the image
      Dim image As RasterImage = e.Image

      Console.WriteLine("Image at {0} loaded OK, size: {1} by {2}", e.Uri, image.Width, image.Height)

      image.Dispose()
   End If

   ' Unsubscribe to the event and dispose the RasterCodecs object
   Dim codecs As RasterCodecs = DirectCast(sender, RasterCodecs)
   RemoveHandler codecs.LoadAsyncCompleted, AddressOf rasterImageTypeConverterExample_LoadAsyncCompleted
   codecs.Dispose()
End Sub

Public NotInheritable Class LEAD_VARS
Public Const ImagesDir As String = "C:\Users\Public\Documents\LEADTOOLS Images"
End Class
using Leadtools;
using Leadtools.Codecs;

      
public void RasterImageTypeConverterExample()
{
   string srcFileName = Path.Combine(LEAD_VARS.ImagesDir, "Ocr1.tif");
   // Construct the source URL to use the source file and load the image
   Uri uri = new Uri(srcFileName);

   RasterCodecs codecs = new RasterCodecs();

   // Create a new instance of the RasterImageTypeConverter class
   RasterImageTypeConverter rasterImageConverter = new RasterImageTypeConverter(codecs);

   // We should be able to convert from a URL
   Debug.Assert(rasterImageConverter.CanConvertFrom(uri.GetType()));

   // Convert the image

   // The return value from RasterImageTypeConverter.ConvertFrom might be an image that is
   // still loading. So, we must subscribe to the RasterCodecs.LoadAsyncCompleteted
   // event to obtain the finished image
   codecs.LoadAsyncCompleted += new EventHandler<CodecsLoadAsyncCompletedEventArgs>(rasterImageTypeConverterExample_LoadAsyncCompleted);
   object rasterImageObject = rasterImageConverter.ConvertFrom(uri);

   // Notice that the returned rasterImageObject is a RasterImage with IsLoading set to true at this point
   // The IsLoading will be false (and hence, the object will be usable) when the LoadAsyncCompleteted
   // fires.
}

private void rasterImageTypeConverterExample_LoadAsyncCompleted(object sender, CodecsLoadAsyncCompletedEventArgs e)
{
   // Check if the user canceled or if we have errors
   if (e.Cancelled)
   {
      Console.WriteLine("Canceled by the user");
   }
   else if (e.Error != null)
   {
      Console.WriteLine("Error: " + e.Error.Message);
   }
   else
   {
      // Everything is OK, get the image
      RasterImage image = e.Image;

      Console.WriteLine("Image at {0} loaded OK, size: {1} by {2}", e.Uri, image.Width, image.Height);

      image.Dispose();
   }

   // Unsubscribe to the event and dispose the RasterCodecs object
   RasterCodecs codecs = sender as RasterCodecs;
   codecs.LoadAsyncCompleted -= new EventHandler<CodecsLoadAsyncCompletedEventArgs>(rasterImageTypeConverterExample_LoadAsyncCompleted);
   codecs.Dispose();
}

static class LEAD_VARS
{
public const string ImagesDir = @"C:\Users\Public\Documents\LEADTOOLS Images";
}
必要条件

ターゲットプラットホーム

参照

参照

RasterImageTypeConverterメンバ
Leadtools.Codecs名前空間