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

フレームを表示

StartRedirectingメソッド








ファイルの入出力リダイレクションを開始します。
構文
public void StartRedirecting()
'Declaration
 
Public Sub StartRedirecting() 
'Usage
 
Dim instance As RasterCodecs
 
instance.StartRedirecting()
public void StartRedirecting()
public void startRedirecting()
 function Leadtools.Codecs.RasterCodecs.StartRedirecting()
public:
void StartRedirecting(); 
解説

LEADTOOLS I/Oリダイレクションは、ファイルを開いて、読んで、書き込んで、捜して、閉じるためにデフォルトの入出力メソッドを置換することができます。

たとえば、メソッドがそうするすべてのライブラリI/Oを向け直すことができます独自のイメージをロードして/保存するI/Oメソッドから独自のストリーム。

一度StartRedirectingを呼び出したら、すべての以降のファイルI/O操作は以下のイベントを発生します:

イベント 操作
RedirectOpen ツールキットがファイルを開こうとしているとき、
再分離外読むこと ツールキットがファイルから読み取りにためしているとき、
RedirectWrite ツールキットがファイルに書くことにためしているとき、
RedirectSeek ツールキットがファイルにシークにためしているとき、
再分離外終わり ツールキットがファイルを閉じることにためしているとき、

デフォルトへI/Oメソッドをリセットするために、StopRedirectingを呼び出します。

サンプル

このサンプルは、デフォルトのIOルーチンをオーバーライドすることを説明します。

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

' Redirect Read event example
Private myStream As FileStream
' Redirect Open event example
Private Sub Codecs_Open(ByVal sender As Object, ByVal e As CodecsRedirectOpenEventArgs)
   myStream = New FileStream(e.FileName, e.Mode)
   e.Success = True
End Sub

' Redirect Seek event example
Private Sub Codecs_Seek(ByVal sender As Object, ByVal e As CodecsRedirectSeekEventArgs)
   myStream.Seek(e.Offset, e.Origin)
   e.Offset = myStream.Position
End Sub

' Redirect Read event example
Private Sub Codecs_Read(ByVal sender As Object, ByVal e As CodecsRedirectReadEventArgs)
   Dim byteBuffer As Byte() = New Byte(e.Count - 1) {}
   myStream.Read(byteBuffer, 0, e.Count)
   Marshal.Copy(byteBuffer, 0, e.Buffer, e.Count)
   e.Read = e.Count
   Console.WriteLine("The number of bytes that read request should copy to the buffer is : {0}", e.Count)
   Console.WriteLine("The actual number of bytes that this read request has copied to Buffer is : {0}", e.Read)
End Sub

' Redirect Write event example
Private Sub Codecs_Write(ByVal sender As Object, ByVal e As CodecsRedirectWriteEventArgs)
   Dim byteBuffer As Byte() = New Byte(e.Count - 1) {}
   Marshal.Copy(e.Buffer, byteBuffer, 0, e.Count)
   myStream.Write(byteBuffer, 0, e.Count)
   e.Written = e.Count

   Console.WriteLine("The number of bytes that write request should copy from the buffer is : {0}", e.Count)
   Console.WriteLine("The actual number of bytes that this write request has copied from Buffer is : {0}", e.Written)
End Sub

' Redirect Close event example
Private Sub Codecs_Close(ByVal sender As Object, ByVal e As CodecsRedirectCloseEventArgs)
   myStream.Close()
End Sub

      
Public Sub StartRedirectingExample()
   Dim codecs As RasterCodecs = New RasterCodecs()

   AddHandler codecs.RedirectOpen, AddressOf Codecs_Open
   AddHandler codecs.RedirectSeek, AddressOf Codecs_Seek
   AddHandler codecs.RedirectRead, AddressOf Codecs_Read
   AddHandler codecs.RedirectWrite, AddressOf Codecs_Write
   AddHandler codecs.RedirectClose, AddressOf Codecs_Close

   Dim srcFilename As String = Path.Combine(LEAD_VARS.ImagesDir, "Image1.cmp")

   codecs.StartRedirecting()
   Dim image As RasterImage = codecs.Load(srcFilename)
   myStream.Close()
   codecs.Save(image, Path.Combine(LEAD_VARS.ImagesDir, "Image1_redirect.jpg"), RasterImageFormat.Jpeg, image.BitsPerPixel)
   codecs.StopRedirecting()

   ' Clean up
   myStream.Dispose()
   image.Dispose()
   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;

// Redirect Read event example
FileStream myStream;
// Redirect Open event example
private void Codecs_Open(object sender, CodecsRedirectOpenEventArgs e)
{
   myStream = new FileStream(e.FileName, e.Mode);
   e.Success = true;
}

// Redirect Seek event example
private void Codecs_Seek(object sender, CodecsRedirectSeekEventArgs e)
{
   myStream.Seek(e.Offset, e.Origin);
   e.Offset = myStream.Position;
}

// Redirect Read event example
private void Codecs_Read(object sender, CodecsRedirectReadEventArgs e)
{
   byte[] byteBuffer = new byte[e.Count];
   myStream.Read(byteBuffer, 0, e.Count);
   Marshal.Copy(byteBuffer, 0, e.Buffer, e.Count);
   e.Read = e.Count;
   Console.WriteLine("The number of bytes that read request should copy to the buffer is : {0}", e.Count);
   Console.WriteLine("The actual number of bytes that this read request has copied to Buffer is : {0}", e.Read);
}

// Redirect Write event example
private void Codecs_Write(object sender, CodecsRedirectWriteEventArgs e)
{
   byte[] byteBuffer = new byte[e.Count];
   Marshal.Copy(e.Buffer, byteBuffer, 0, e.Count);
   myStream.Write(byteBuffer, 0, e.Count);
   e.Written = e.Count;

   Console.WriteLine("The number of bytes that write request should copy from the buffer is : {0}", e.Count);
   Console.WriteLine("The actual number of bytes that this write request has copied from Buffer is : {0}", e.Written);
}

// Redirect Close event example
private void Codecs_Close(object sender, CodecsRedirectCloseEventArgs e)
{
   myStream.Close();
}

      
public void StartRedirectingExample()
{
   RasterCodecs codecs = new RasterCodecs();

   codecs.RedirectOpen += new EventHandler<CodecsRedirectOpenEventArgs>(Codecs_Open);
   codecs.RedirectSeek += new EventHandler<CodecsRedirectSeekEventArgs>(Codecs_Seek);
   codecs.RedirectRead += new EventHandler<CodecsRedirectReadEventArgs>(Codecs_Read);
   codecs.RedirectWrite += new EventHandler<CodecsRedirectWriteEventArgs>(Codecs_Write);
   codecs.RedirectClose += new EventHandler<CodecsRedirectCloseEventArgs>(Codecs_Close);

   string srcFilename = Path.Combine(LEAD_VARS.ImagesDir, "Image1.cmp");

   codecs.StartRedirecting();
   RasterImage image = codecs.Load(srcFilename);
   myStream.Close();
   codecs.Save(image, Path.Combine(LEAD_VARS.ImagesDir, "Image1_redirect.jpg"), RasterImageFormat.Jpeg, image.BitsPerPixel);
   codecs.StopRedirecting();

   // Clean up
   myStream.Dispose();
   image.Dispose();
   codecs.Dispose();
}

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

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

参照

参照

RasterCodecsクラス
RasterCodecsメンバ