LEADTOOLS WPFとSilverlight(Leadtools.Windows.Mediaアセンブリ)

フレームを表示

ConvertToSourceメソッド






変換する画像データを格納するLeadtools.RasterImageオブジェクト。
変換操作を制御するオプション。以下の値は、一緒にORedでありえます:
意味
ConvertToSourceOptions.None オプションを指定しないことを示します。
ConvertToSourceOptions.KeepAlphaValues

ソースLeadtools.RasterImageが32または64ビット/ピクセルであるならば、変換の結果が32または64ビット/ピクセルのSystem.Windows.Media.ImageSourceでもあるならば、このアルファからアルファ値を使います。

これがフラグを立てたかどうかは指定されません、結果System.Windows.Media.ImageSourceは常にソースLeadtools.RasterImageのアルファ値に関係なく全1(32ビットイメージのための255または64ビットイメージのための65535)のアルファ値を持っています。アルファ(BMPファイル等)が0であり、完全に透明となるSystem.Windows.Media.ImageSourceに変換する一部の32ビット画像を変換する場合は便利です。

このフラグが指定されるならば、ソースimageアルファ値が現状のまま使われます。

ConvertToSourceOptions.KeepViewPerspective

変換元のLeadtools.RasterImageのビューの視点と方向を維持します。Leadtools.RasterImageオブジェクトは、RasterImage.ViewPerspectiveプロパティから、画像データの向きを通常の左上以外にすることができます。

ソースLeadtools.RasterImageRasterViewPerspective.TopLeft以外のビューの視点と方向を持っている、そして、このフラグが指定されるならば、結果System.Windows.Media.ImageSourceは上下に反転されるかもしれないか、翻されるかもしれないか、回転するかもしれません。たとえば、変換元のビューと視点の方向がRasterViewPerspective.BottomLeftの場合にこのフラグを変換オプションに指定すると、変換後のSystem.Windows.Media.ImageSourceは上下反転します。

このフラグが指定されていないと、必要に応じて画像は上下反転、左右反転または回転し正しい(左上)System.Windows.Media.ImageSourceを提供します。

ConvertToSourceOptions.IgnoreLowHighBitsOnGrayImages

変換12または16ビットグレースケールLeadtools.RasterImageが反対するとき、グレースケールビットウィンドウ値を使いません。Leadtools.RasterImageオブジェクトは、画像データにウィンドウを提供する用意が整っていることがありえるRasterImage.LowBitRasterImage.HighBit値を格納します。これは、大部分はウィンドウ水準測定操作の間、医学的なアプリケーションにより用いられます。

このフラグが指定されるならば、RasterImage.LowBitRasterImage.HighBit値は無視されます、そして、画像データの全てがSystem.Windows.Media.ImageSourceLeadtools.RasterImageを変換するとき、使われます。

このフラグが指定されないならば、RasterImage.LowBitRasterImage.HighBitの間の画像データだけが使われます。

ConvertToSourceOptions.UseSetSource

注意:このオプションは、SilverlightツールキットのためにLEADTOOLSにより用いられるだけです。このフラグのWPFバージョンは無視されます、そして、変換操作に影響を及ぼしません。

System.Windows.Media.ImageSourceLeadtools.RasterImageを変換するとき、能力をロードしているSilverlightネイティブを使うために、このオプションを使います。このオプションが指定されるとき、以下の1つは起こります:

ソースLeadtools.RasterImageが1、2、3、4、5、6、7または8のビット/ピクセル値を持っているならば、データは最初にPNGストリームに変換されます、そして、呼び出しは結果imageを構築するためにBitmapSource.SetSourceに作られます。

ソースビット/ピクセル値が12または16であるならば、データは最初にJPEGストリームに変換されます、そして、呼び出しは結果imageを構築するためにBitmapSource.SetSourceに作られます。

他のどのビット/ピクセル値(24、32、48または64)のためにも、直接の変換が使われます、そして、まるでUseSetSourceフラグが指定されないように、結果は同じことです。

このフラグが指定されないならば、BitmapSource.SetSourceが使われません、そして、ツールキットは互換性を持つSystem.Windows.Media.ImageSourceLeadtools.RasterImageを直接変換します。

SilverlightツールキットのためにLEADTOOLSでこのフラグを指定することは、特に1ビット/ピクセルLeadtools.RasterImageオブジェクトを変換するとき、RasterImageConverter.ConvertToSourceメソッドのパフォーマンスを増やすかもしれません。

WPF/Silverlight System.Windows.Media.ImageSourceにLEADTOOLS for .NET Leadtools.RasterImageオブジェクトを変換します。
構文
public static ImageSource ConvertToSource( 
   RasterImage image,
   ConvertToSourceOptions options
)
'Declaration
 
Public Shared Function ConvertToSource( _
   ByVal image As RasterImage, _
   ByVal options As ConvertToSourceOptions _
) As ImageSource
'Usage
 
Dim image As RasterImage
Dim options As ConvertToSourceOptions
Dim value As ImageSource
 
value = RasterImageConverter.ConvertToSource(image, options)

            

            
public:
static ImageSource^ ConvertToSource( 
   RasterImage^ image,
   ConvertToSourceOptions options
) 

パラメーター

image
変換する画像データを格納するLeadtools.RasterImageオブジェクト。
オプション
変換操作を制御するオプション。以下の値は、一緒にORedでありえます:
意味
ConvertToSourceOptions.None オプションを指定しないことを示します。
ConvertToSourceOptions.KeepAlphaValues

ソースLeadtools.RasterImageが32または64ビット/ピクセルであるならば、変換の結果が32または64ビット/ピクセルのSystem.Windows.Media.ImageSourceでもあるならば、このアルファからアルファ値を使います。

これがフラグを立てたかどうかは指定されません、結果System.Windows.Media.ImageSourceは常にソースLeadtools.RasterImageのアルファ値に関係なく全1(32ビットイメージのための255または64ビットイメージのための65535)のアルファ値を持っています。アルファ(BMPファイル等)が0であり、完全に透明となるSystem.Windows.Media.ImageSourceに変換する一部の32ビット画像を変換する場合は便利です。

このフラグが指定されるならば、ソースimageアルファ値が現状のまま使われます。

ConvertToSourceOptions.KeepViewPerspective

変換元のLeadtools.RasterImageのビューの視点と方向を維持します。Leadtools.RasterImageオブジェクトは、RasterImage.ViewPerspectiveプロパティから、画像データの向きを通常の左上以外にすることができます。

ソースLeadtools.RasterImageRasterViewPerspective.TopLeft以外のビューの視点と方向を持っている、そして、このフラグが指定されるならば、結果System.Windows.Media.ImageSourceは上下に反転されるかもしれないか、翻されるかもしれないか、回転するかもしれません。たとえば、変換元のビューと視点の方向がRasterViewPerspective.BottomLeftの場合にこのフラグを変換オプションに指定すると、変換後のSystem.Windows.Media.ImageSourceは上下反転します。

このフラグが指定されていないと、必要に応じて画像は上下反転、左右反転または回転し正しい(左上)System.Windows.Media.ImageSourceを提供します。

ConvertToSourceOptions.IgnoreLowHighBitsOnGrayImages

変換12または16ビットグレースケールLeadtools.RasterImageが反対するとき、グレースケールビットウィンドウ値を使いません。Leadtools.RasterImageオブジェクトは、画像データにウィンドウを提供する用意が整っていることがありえるRasterImage.LowBitRasterImage.HighBit値を格納します。これは、大部分はウィンドウ水準測定操作の間、医学的なアプリケーションにより用いられます。

このフラグが指定されるならば、RasterImage.LowBitRasterImage.HighBit値は無視されます、そして、画像データの全てがSystem.Windows.Media.ImageSourceLeadtools.RasterImageを変換するとき、使われます。

このフラグが指定されないならば、RasterImage.LowBitRasterImage.HighBitの間の画像データだけが使われます。

ConvertToSourceOptions.UseSetSource

注意:このオプションは、SilverlightツールキットのためにLEADTOOLSにより用いられるだけです。このフラグのWPFバージョンは無視されます、そして、変換操作に影響を及ぼしません。

System.Windows.Media.ImageSourceLeadtools.RasterImageを変換するとき、能力をロードしているSilverlightネイティブを使うために、このオプションを使います。このオプションが指定されるとき、以下の1つは起こります:

ソースLeadtools.RasterImageが1、2、3、4、5、6、7または8のビット/ピクセル値を持っているならば、データは最初にPNGストリームに変換されます、そして、呼び出しは結果imageを構築するためにBitmapSource.SetSourceに作られます。

ソースビット/ピクセル値が12または16であるならば、データは最初にJPEGストリームに変換されます、そして、呼び出しは結果imageを構築するためにBitmapSource.SetSourceに作られます。

他のどのビット/ピクセル値(24、32、48または64)のためにも、直接の変換が使われます、そして、まるでUseSetSourceフラグが指定されないように、結果は同じことです。

このフラグが指定されないならば、BitmapSource.SetSourceが使われません、そして、ツールキットは互換性を持つSystem.Windows.Media.ImageSourceLeadtools.RasterImageを直接変換します。

SilverlightツールキットのためにLEADTOOLSでこのフラグを指定することは、特に1ビット/ピクセルLeadtools.RasterImageオブジェクトを変換するとき、RasterImageConverter.ConvertToSourceメソッドのパフォーマンスを増やすかもしれません。

戻り値

変換後の画像を表すSystem.Windows.Media.ImageSourceオブジェクト。
解説

Microsoft Windows Presentation Foundation(WPF)

LEADTOOLS for .NETとWindows Presentation Foundation(WPF)は、様々なピクセル形式をサポートします。これらのピクセル形式は、場合によっては同一でないかもしれません。変換過程は、ソースデータと最も一致する適当な形式にスキャンラインを変換するように気をつけます。

ConvertToSourceメソッドは、ビット/ピクセル、圧縮、カラーオーダー、ソースimageのグレースケールプロパティの組合せに関係なく任意のLeadtools.RasterImageから変換をサポートします。ConvertToSourceメソッド意志は、一時記憶をデータに割り当てて、それの上で必要な変換を実行することによって、常に有効なWPF System.Windows.Media.ImageSourceを返します。

ある場合には、Leadtools.RasterImageデータはWPFと互換性を持ちます、そして、変換が起こりません。WPF System.Windows.Media.ImageSourceに互換性を持つLeadtools.RasterImageを変換することは、より高速で、非互換のimageを変換するより少ない資源をとります。現時点では、WPFが画像データが保存される生のデータポインタにダイレクトアクセスを許可しない点に注意してください。したがって、(たとえばSystem.Windows.Media.Imaging.BitmapSource.Createメソッドの使用を通じて)WPF画像がソースデータを直接使用できるかどうかにかかわらず、常にコピー操作が少なくとも1回発生します。

Leadtools.RasterImageがWPFと互換性があるとみなされるためには、以下の特性を持つ必要があります。

以下のテーブルは、ソースLeadtools.RasterImageビット/ピクセルとソースデータプロパティをリストします、そして、各々の組合せがWPFと互換性を持つかどうかにかかわらず。

ソースビット/ピクセル より多くのソースデータ 互換性を持つ 結果PixelFormat

1

白いパレットのブラック

はい

System.Windows.Media.PixelFormats.BlackWhite

1

その他のパレット。

はい

System.Windows.Media.PixelFormats.Indexed1

2

-

はい

System.Windows.Media.PixelFormats.Indexed2

3

-

いいえ

System.Windows.Media.PixelFormats.Indexed4

4

-

はい

System.Windows.Media.PixelFormats.Indexed4

5

-

いいえ

System.Windows.Media.PixelFormats.Indexed8

6

-

いいえ

System.Windows.Media.PixelFormats.Indexed8

7

いいえ

System.Windows.Media.PixelFormats.Indexed8

8

グレースケールパレット

はい

System.Windows.Media.PixelFormats.Gray8

8

カラーパレット

はい

System.Windows.Media.PixelFormats.Gray8

12

-

いいえ

System.Windows.Media.PixelFormats.Gray16

16

互換性を持つグレースケールデータ(下のグレースケールイメージのメモをごらんください)

はい

System.Windows.Media.PixelFormats.Gray16

16

非互換のグレースケールデータ

いいえ

System.Windows.Media.PixelFormats.Bgra32

16

カラーデータ

はい

System.Windows.Media.PixelFormats.Bgr555

24

BGRカラーオーダー

はい

System.Windows.Media.PixelFormats.Bgr24

24

RGBカラーオーダー

はい

System.Windows.Media.PixelFormats.Rgb24

32

BGRカラーオーダー(下のアルファチャンネルのメモをごらんください)

はい

System.Windows.Media.PixelFormats.Bgra32

32

RGBカラーオーダー

いいえ

System.Windows.Media.PixelFormats.Bgra32

48

BGRカラーオーダー

いいえ

System.Windows.Media.PixelFormats.Rgb48

48

RGBカラーオーダー

はい

System.Windows.Media.PixelFormats.Rgb48

64

BGRカラーオーダー

いいえ

System.Windows.Media.PixelFormats.Rgba64

64

RGBカラーオーダー(下のアルファチャンネルのメモをごらんください)

はい

System.Windows.Media.PixelFormats.Rgba64

グレースケールイメージのメモ

LEADTOOLSとWindows Presentation Foundationは、16ビットグレースケール画像データをサポートします。しかし、LEADTOOLSは低い/高位ビット値とカラールックアップテーブルなどの追加の機能をサポートします。System.Windows.Media.PixelFormats.Gray16でWPF imageと互換性を持つLEADTOOLS 16ビットグレースケールLeadtools.RasterImageのために、以下の状況は満たされなければなりません:

アルファチャンネルのメモ

アルファチャネル(32または64ビット/ピクセルイメージ)をサポートするイメージを変換するとき、ConvertToSourceメソッドはConvertToSourceOptions.KeepAlphaValuesフラグを用いることによりソースimageアルファチャネルビットを通して、または、それを用いてすべての1のものにアルファチャネルビットを外へマスクすることをサポートします。アルファチャネルビットをマスクアウトする場合はソースデータ画像を処理する必要があるため、結果的に画像とWPFの互換性はなくなります。

Microsoft Silverlight

Microsoft Silverlightプラットホームは、32ビット/ピクセルだけとしてイメージを作成することをサポートします。それで、以下のプロパティによるLeadtools.RasterImageだけは、Silverlight互換であると思われます:

RasterImage.IsConventionalMemorytrueですRasterImage.BitsPerPixelは32です、そして、RasterImage.OrderRasterByteOrder.Bgrです。

imageカラーとデータフォーマットとの他のどの組合せによる任意のLeadtools.RasterImageも、スキャンラインベースでスキャンラインで変換されます。

先に述べたように非互換の画像データのために変換過程の速度を上げるために、ConvertToSourceOptions.UseSetSourceオプションを使うこともできます。

詳細については、「RasterImageとWPF/Silverlight」を参照してください。

サンプル

このサンプルは、Leadtools.RasterImageをロードして、WPF/Silverlight System.Windows.Media.ImageSourceに変換して、System.Windows.Controls.Imageコントロールでそれを設定するために、LEADTOOLSを使います。

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

Private Sub ConvertToSourceExample(ByVal imageControl As System.Windows.Controls.Image)
   Dim srcFileName As String = Path.Combine(LEAD_VARS.ImagesDir, "Image1.cmp")

   Using codecs As New RasterCodecs()
      ' Load the image
      Using rasterImage As RasterImage = codecs.Load(srcFileName, 0, CodecsLoadByteOrder.Bgr, 1, 1)
         ' Convert it to WPF/Silverlight ImageSource
         Dim source As System.Windows.Media.ImageSource = RasterImageConverter.ConvertToSource(rasterImage, ConvertToSourceOptions.None)

         ' Set it in the Image control
         imageControl.Source = source
      End Using
   End Using

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;
using Leadtools.ImageProcessing;
using Leadtools.Windows.Media;

private void ConvertToSourceExample(System.Windows.Controls.Image imageControl)
{
   string srcFileName =Path.Combine(LEAD_VARS.ImagesDir, "Image1.cmp");

   using(RasterCodecs codecs = new RasterCodecs())
   {
      // Load the image
      using(RasterImage rasterImage = codecs.Load(srcFileName, 0, CodecsLoadByteOrder.Bgr, 1, 1))
      {
         // Convert it to WPF/Silverlight ImageSource
         System.Windows.Media.ImageSource source = RasterImageConverter.ConvertToSource(rasterImage, ConvertToSourceOptions.None);

         // Set it in the Image control
         imageControl.Source = source;
      }
   }

}

static class LEAD_VARS
{
public const string ImagesDir = @"C:\Users\Public\Documents\LEADTOOLS Images";
}
using Leadtools;
using Leadtools.Codecs;
using Leadtools.ImageProcessing;
using Leadtools.Windows.Media;

private void ConvertToSourceExample(System.Windows.Controls.Image imageControl)
{
   string srcFileName = LeadtoolsExamples.Common.ImagesPath.Path + "Image1.cmp";
   RasterCodecs codecs = new RasterCodecs();
   // Load the image
   using(RasterImage rasterImage = codecs.Load(srcFileName, 0, CodecsLoadByteOrder.Bgr, 1, 1))
   {
      // Convert it to WPF/Silverlight ImageSource
      System.Windows.Media.ImageSource source = RasterImageConverter.ConvertToSource(rasterImage, ConvertToSourceOptions.None);

      // Set it in the Image control
      imageControl.Source = source;
   }
}
Imports Leadtools
Imports Leadtools.Codecs
Imports Leadtools.ImageProcessing
Imports Leadtools.Windows.Media
Imports Leadtools.ImageProcessing.Color

Private Sub ConvertToSourceExample(ByVal imageControl As System.Windows.Controls.Image)
   Dim srcFileName As String = LeadtoolsExamples.Common.ImagesPath.Path & "Image1.cmp"
   Dim codecs As RasterCodecs = New RasterCodecs()
   ' Load the image
   Using rasterImage As RasterImage = codecs.Load(srcFileName, 0, CodecsLoadByteOrder.Bgr, 1, 1)
      ' Convert it to WPF/Silverlight ImageSource
      Dim source As System.Windows.Media.ImageSource = RasterImageConverter.ConvertToSource(rasterImage, ConvertToSourceOptions.None)

      ' Set it in the Image control
      imageControl.Source = source
   End Using
End Sub
必要条件

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

参照

参照

RasterImageConverterクラス
RasterImageConverterメンバ