Leadtools.Codecs名前空間 > RasterCodecsクラス > GetInformationAsyncメソッド :GetInformationAsync(String、Boolean、Int32、Object)メソッド |
public CodecsImageInfo GetInformationAsync( string fileName, bool totalPages, int pageNumber, object userState )
'Declaration
Public Overloads Function GetInformationAsync( _ ByVal fileName As String, _ ByVal totalPages As Boolean, _ ByVal pageNumber As Integer, _ ByVal userState As Object _ ) As CodecsImageInfo
'Usage
Dim instance As RasterCodecs Dim fileName As String Dim totalPages As Boolean Dim pageNumber As Integer Dim userState As Object Dim value As CodecsImageInfo value = instance.GetInformationAsync(fileName, totalPages, pageNumber, userState)
public CodecsImageInfo GetInformationAsync( string fileName, bool totalPages, int pageNumber, object userState )
- (void)imageInformationForFileAsync:(NSString *)file
totalPages:(BOOL)totalPages
pageNumber:(NSInteger)pageNumber
completion:(void (^)(LTCodecsImageInfo * __nullable info, NSError * __nullable error))completion
function Leadtools.Codecs.RasterCodecs.GetInformationAsync(String,Boolean,Int32,Object)( fileName , totalPages , pageNumber , userState )
public: CodecsImageInfo^ GetInformationAsync( String^ fileName, bool totalPages, int pageNumber, Object^ userState )
totalPagesにtrueを指定すると、ページ数の多いファイルのためプロセスは遅くなります。
RasterCodecsクラスは、GetInformationAsyncメソッドを使って画像ファイルに関する情報を非同期に取得するようサポートします。これらのいずれかのメソッドを呼び出すと、コーラースレッドはブロックされ、ロード状態にあるインスタンスCodecsImageInfoでただちに返されます(CodecsImageInfo.IsLoadingをtrueに設定)。オブジェクトがロード状態にある間は、このオブジェクトのその他のプロパティは使用してはなりません。
RasterCodecsオブジェクトでファイルに関する情報の取得が終わると、CodecsImageInfoの様々なプロパティには画像ファイル情報が入力され、CodecsImageInfo.IsLoadingプロパティはfalseに設定されます。
画像情報の収集が完了したかどうかを判断するためにCodecsImageInfo.IsLoadingプロパティをポーリングすることは推奨されません。そうではなく、GetInformationAsync操作がいつ完了するのか、エラーが発生したかどうかに関する情報を得るにはGetInformationAsyncCompletedイベントにサブスクライブします。
GetInformationAsyncCompletedイベントデータにはGetInformationAsyncから返されたものと同じオブジェクトも含まれます。このためアプリケーション内にオリジナルのオブジェクトを保持しておく必要はありません。
userStateは、GetInformationAsyncCompletedイベントデータのCodecsGetInformationAsyncCompletedEventArgs.UserStateメンバに渡されます。
Imports Leadtools Imports Leadtools.Codecs Imports Leadtools.ImageProcessing Imports Leadtools.ImageProcessing.Color Imports Leadtools.Drawing Imports Leadtools.Svg Public Sub GetInformationAsyncFileExample() Dim srcFileName As String = Path.Combine(LEAD_VARS.ImagesDir, "Image1.cmp") Dim codecs As New RasterCodecs() ' Now get information about the file asynchronously AddHandler codecs.GetInformationAsyncCompleted, AddressOf GetInformationAsyncFileExample_GetInformationAsyncCompleted Dim imageInfoObject As Object = codecs.GetInformationAsync(srcFileName, True, 1, Nothing) ' Notice that the returned imageInfoObject is a CodecsImageInfo with IsLoading set to true at this point ' The IsLoading will be false (and hence, the object will be usable) when the GetInformationAsyncCompleted ' fires. End Sub Private Sub GetInformationAsyncFileExample_GetInformationAsyncCompleted(ByVal sender As Object, ByVal e As CodecsGetInformationAsyncCompletedEventArgs) If e.Cancelled Then Console.WriteLine("User canceled") ElseIf Not IsNothing(e.Error) Then Console.WriteLine("Error: " + e.Error.Message) Else ' Get the image info Dim info As CodecsImageInfo = DirectCast(e.Info, CodecsImageInfo) Console.WriteLine("Image info obtainted asynchronously:\n{0}", info.ToString()) info.Dispose() End If ' Unsubscribe to the event and dispose the RasterCodecs object Dim codecs As RasterCodecs = DirectCast(sender, RasterCodecs) RemoveHandler codecs.GetInformationAsyncCompleted, AddressOf GetInformationAsyncFileExample_GetInformationAsyncCompleted 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 GetInformationAsyncFileExample() { string srcFileName = Path.Combine(LEAD_VARS.ImagesDir, "Image1.cmp"); RasterCodecs codecs = new RasterCodecs(); // Now get information about the file asynchronously codecs.GetInformationAsyncCompleted += new EventHandler<CodecsGetInformationAsyncCompletedEventArgs>(GetInformationAsyncFileExample_GetInformationAsyncCompleted); object imageInfoObject = codecs.GetInformationAsync(srcFileName, true, 1, null); // Notice that the returned imageInfoObject is a CodecsImageInfo with IsLoading set to true at this point // The IsLoading will be false (and hence, the object will be usable) when the GetInformationAsyncCompleted // fires. } private void GetInformationAsyncFileExample_GetInformationAsyncCompleted(object sender, CodecsGetInformationAsyncCompletedEventArgs e) { if (e.Cancelled) { Console.WriteLine("User canceled"); } else if (e.Error != null) { Console.WriteLine("Error: " + e.Error.Message); } else { // Get the image info CodecsImageInfo info = e.Info; Console.WriteLine("Image info obtainted asynchronously:\n{0}", info.ToString()); info.Dispose(); } // Unsubscribe to the event and dispose the RasterCodecs object RasterCodecs codecs = sender as RasterCodecs; codecs.GetInformationAsyncCompleted -= new EventHandler<CodecsGetInformationAsyncCompletedEventArgs>(GetInformationAsyncFileExample_GetInformationAsyncCompleted); codecs.Dispose(); } static class LEAD_VARS { public const string ImagesDir = @"C:\Users\Public\Documents\LEADTOOLS Images"; }