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

フレームを表示

StartFeedLoad(Int32、CodecsLoadByteOrder)メソッド








結果として生じるimageビット数。有効値は以下の通りです:

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

目的のカラーオーダー。設定可能な値は、以下の通りです。

意味
CodecsLoadByteOrder.Rgb メモリ内に赤・緑・青のカラーオーダー。
CodecsLoadByteOrder.Bgr メモリ内にBlue、緑と赤のカラーオーダー。
CodecsLoadByteOrder.Gray 12または16ビットグレースケールimage。12ビットと16ビットのグレースケールイメージは、Document/Medical画像化版でのみサポートされます。
CodecsLoadByteOrder.RgbOrGray 赤い、緑、青として、または12ビットまたは16ビットのグレースケールimageとして画像をロードします。12ビットと16ビットのグレースケールイメージは、Document/Medical画像化版でサポートされます。
CodecsLoadByteOrder.BgrOrGray 青、緑、赤として、または12ビットまたは16ビットのグレースケールimageとして画像をロードします。12ビットと16ビットのグレースケールイメージは、Document/Medical画像化版でサポートされます。
CodecsLoadByteOrder.Romm ROMMオーダー。ROMMは、24ビットと48ビットのイメージのみをサポートします。
CodecsLoadByteOrder.BgrOrGrayOrRomm 赤い、緑、青として、または12ビットまたは16ビットのグレースケールimageとして、またはROMMとして画像をロードします。12ビットと16ビットのグレースケールイメージは、ドキュメント/Medical Imaging版でのみサポートされます。ROMMは、24ビットと48ビットのカラーイメージのみをサポートします。
入力ストリームを制御するファイル-ロードプロセスを初期化します。
構文
public void StartFeedLoad( 
   int bitsPerPixel,
   CodecsLoadByteOrder order
)
'Declaration
 
Public Overloads Sub StartFeedLoad( _
   ByVal bitsPerPixel As Integer, _
   ByVal order As CodecsLoadByteOrder _
) 
'Usage
 
Dim instance As RasterCodecs
Dim bitsPerPixel As Integer
Dim order As CodecsLoadByteOrder
 
instance.StartFeedLoad(bitsPerPixel, order)
public void StartFeedLoad( 
   int bitsPerPixel,
   CodecsLoadByteOrder order
)
- (BOOL)startFeedLoad:(NSInteger)bitsPerPixel order:(LTCodecsLoadByteOrder)order error:(NSError **)error
public FeedCallbackThunk startFeedLoad(int bitsPerPixel, CodecsLoadByteOrder order)
 function Leadtools.Codecs.RasterCodecs.StartFeedLoad(Int32,CodecsLoadByteOrder)( 
   bitsPerPixel ,
   order 
)
public:
void StartFeedLoad( 
   int bitsPerPixel,
   CodecsLoadByteOrder order
) 

パラメーター

bitsPerPixel

結果として生じるimageビット数。有効値は以下の通りです:

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

目的のカラーオーダー。設定可能な値は、以下の通りです。

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

バッファーに入れられたデータを供給するためにFeedLoadメソッドを呼び出さなければなりません、そして、ロードが完了しているとき、StopFeedLoadを呼び出さなければなりません。

受信がイメージを送ったとき、このファイル-ロードプロセスは、インターネットの上のそれらなどの、役に立ちます。それはロードまたはLoadAsyncメソッドと同じ方法を機能しますが、codeは画像データを供給します。ファイル-ロードプロセスは、以下のように機能します:

  1. ファイル-ロードプロセスを初期化するために、StartFeedLoadメソッドを呼び出します。
  2. バッファを作成します、そして、それを情報で満たすたびに、FeedLoadメソッドを呼び出します。そして、それはただまるでデータがディスク上でファイルから読み込まれているように、ファイル-ロードプロセスにデータを送ります。
  3. それにはそうするのに十分なデータがあるときはいつでも、ファイル-ロードプロセスはロードまたはLoadAsyncメソッドで同じにふるまいます。それは、imageをロードすることを割り当てて、開始します。入力バッファに十分なデータがあるときはいつでも、人が指定されるならば、それはLoadImageイベントハンドラを呼び出します。

    それがそうするのに十分な情報を受け取ったとき、ファイル-ロードプロセスはRasterImageで情報を更新します。この情報が利用できるときはいつでも、ファイル-ロードプロセスはイベントハンドラに最初の電話をかけます。

  4. StartFeedLoadを呼び出した後にいつでも、正常にフィードロード操作を中止するために、CancelFeedLoadを呼び出すことができます。これは、例外をスローすることなくフィードロードプロセスを終えることができます。
  5. ファイル-ロードプロセスを終えるために、StopFeedLoadメソッドを呼び出します。そして、それはプロセスをクリーンアップして、成功した場合、ロードしたRasterImageを返します。完了したファイルを供給する前にこのメソッドを呼び出すならば、それはプロセスを正常にクリーンアップするが、例外をスローします。ロードが故意にキャンセルされるならば、例外をキャッチしなければなりません。

CodecsLoadByteOrder.Grayは、12と16ビットグレースケールイメージに有効なだけです。12と16ビットグレースケールイメージのサポートは、Document/Medicalイメージングエディションのみで利用できます。

このメソッドが、StartRedirectingと結合して使われることができません。

CodecsLoadOptions.AllPagesプロパティは、画像データが複数ページを格納するならば、RasterCodecsがすべてのページかまさにその最初のページをロードしようとするかどうか制御します。

サンプル

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

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

      
Public Sub FeedLoadExample()
   Dim codecs As RasterCodecs = New RasterCodecs()
   Dim url As String = "https://www.leadtools.com/images/web-header.jpg"
   Dim destFileName As String = Path.Combine(LEAD_VARS.ImagesDir, "FeedLoad.bmp")

   ' Create a WebRequest for the URL
   Dim request As WebRequest = WebRequest.Create(url)
   request.Proxy.Credentials = CredentialCache.DefaultCredentials

   ' reduce the timeout to 20sec
   request.Timeout = 20000

   Dim response As WebResponse = request.GetResponse()
   Try
      Dim strm As Stream = response.GetResponseStream()

      ' Read chunks from the stream and feed load to the image
      codecs.StartFeedLoad(0, CodecsLoadByteOrder.BgrOrGray)

      Const bufferSize As Integer = 1024
      Dim buffer(bufferSize - 1) As Byte

      Dim read As Integer

      Do
         System.Windows.Forms.Application.DoEvents()

         read = strm.Read(buffer, 0, bufferSize)
         Console.WriteLine("Downloading {0} bytes", read)
         If read > 0 Then
            codecs.FeedLoad(buffer, 0, read)
         End If
      Loop While read > 0
   Finally
      response.Close()
   End Try

   Dim image As RasterImage = codecs.StopFeedLoad()

   ' Save the image to disk
   codecs.Save(image, destFileName, RasterImageFormat.Bmp, 24)
   image.Dispose()

   ' Clean up
   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;
using Leadtools.ImageProcessing;
using Leadtools.ImageProcessing.Color;
using Leadtools.Svg;

      
public void FeedLoadExample()
{
   RasterCodecs codecs = new RasterCodecs();
   string url = @"https://www.leadtools.com/images/page_graphics/leadlogo.png";
   string destFileName = Path.Combine(LEAD_VARS.ImagesDir, "FeedLoad.bmp");

   // Create a WebRequest for the URL
   WebRequest request = WebRequest.Create(url);
   request.Proxy.Credentials = CredentialCache.DefaultCredentials;

   // reduce the timeout to 20sec
   request.Timeout = 20000;

   WebResponse response = request.GetResponse();
   try
   {
      Stream strm = response.GetResponseStream();

      // Read chunks from the stream and feed load to the image
      codecs.StartFeedLoad(0, CodecsLoadByteOrder.BgrOrGray);

      const int bufferSize = 1024;
      byte[] buffer = new byte[bufferSize];

      int read;

      do
      {
         System.Windows.Forms.Application.DoEvents();

         read = strm.Read(buffer, 0, bufferSize);
         Console.WriteLine("Downloading {0} bytes", read);
         if (read > 0)
            codecs.FeedLoad(buffer, 0, read);
      }
      while (read > 0);
   }
   finally
   {
      response.Close();
   }

   RasterImage image = codecs.StopFeedLoad();

   // Save the image to disk
   codecs.Save(image, destFileName, RasterImageFormat.Bmp, 24);
   image.Dispose();

   // Clean up
   codecs.Dispose();
}

static class LEAD_VARS
{
public const string ImagesDir = @"C:\Users\Public\Documents\LEADTOOLS Images";
}
//RasterCodecsExamples.prototype.FeedLoadExample = function ( ) 
//{
//   Tools.SetLicense ( ) ;
//   with ( Leadtools ) { with ( Leadtools.Codecs ) { 
//   var codecs = new RasterCodecs();

//   var url = "https://www.leadtools.com/images/page_graphics/leadlogo.png";
//   var destFileName = "FeedLoad.bmp";

//   // Create a WebRequest for the URL
//   WebRequest request = WebRequest.Create(url);
//   request.Proxy.Credentials = CredentialCache.DefaultCredentials;

//   WebResponse response = await request.GetResponseAsync();
//   try
//   {
//      Stream strm = response.GetResponseStream();

//      // Read chunks from the stream and feed load to the image
//      codecs.StartFeedLoad(0, CodecsLoadByteOrder.BgrOrGray);

//      const int bufferSize = 1024;
//      byte[] buffer = new byte[bufferSize];

//      int read;

//      do
//      {
//         read = strm.Read(buffer, 0, bufferSize);
//         console.info("Downloading {0} bytes", read);
//         if (read > 0)
//            codecs.FeedLoad(buffer, 0, read);
//      }
//      while (read > 0);
//   }
//   finally
//   {
//      response.Dispose();
//   }

//   RasterImage image = codecs.StopFeedLoad();

//   // Save the image to disk
//   StorageFile saveFile = await Tools.AppLocalFolder.CreateFileAsync(destFileName);
//   await codecs.SaveAsync(image, LeadStreamFactory.Create(saveFile), RasterImageFormat.Bmp, 24);
//   image.Dispose();

//   // Clean up
//   codecs.Dispose();
//}
//
using Leadtools;
using Leadtools.Codecs;
using Leadtools.ImageProcessing;
using Leadtools.ImageProcessing.Color;

      
public async Task FeedLoadExample()
{
   RasterCodecs codecs = new RasterCodecs();
   string url = @"https://www.leadtools.com/images/page_graphics/leadlogo.png";
   string destFileName = @"FeedLoad.bmp";

   // Create a WebRequest for the URL
   WebRequest request = WebRequest.Create(url);
   request.Proxy.Credentials = CredentialCache.DefaultCredentials;

   WebResponse response = await request.GetResponseAsync();
   try
   {
      Stream strm = response.GetResponseStream();

      // Read chunks from the stream and feed load to the image
      codecs.StartFeedLoad(0, CodecsLoadByteOrder.BgrOrGray);

      const int bufferSize = 1024;
      byte[] buffer = new byte[bufferSize];

      int read;

      do
      {
         read = strm.Read(buffer, 0, bufferSize);
         Debug.WriteLine("Downloading {0} bytes", read);
         if (read > 0)
            codecs.FeedLoad(buffer, 0, read);
      }
      while (read > 0);
   }
   finally
   {
      response.Dispose();
   }

   RasterImage image = codecs.StopFeedLoad();

   // Save the image to disk
   StorageFile saveFile = await Tools.AppLocalFolder.CreateFileAsync(destFileName);
   await codecs.SaveAsync(image, LeadStreamFactory.Create(saveFile), RasterImageFormat.Bmp, 24);
   image.Dispose();

   // Clean up
   codecs.Dispose();
}
必要条件

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

参照

参照

RasterCodecsクラス
RasterCodecsメンバ
オーバーロードリスト
イメージのロードと保存
大きなTIFF/BigTIFFファイルのロードと保存
1ビット画像処理の高速化
高速ファイル情報