LEADTOOLS Image File Support (Leadtools.Codecs assembly) Send comments on this topic. | Back to Introduction - All Topics | Help Version 17.0.3.29
GetInformationAsync(String,Boolean,Int32,Object) Method
See Also 
Leadtools.Codecs Namespace > RasterCodecs Class > GetInformationAsync Method : GetInformationAsync(String,Boolean,Int32,Object) Method



fileName
System.String containing the input file name to query.
totalPages
true to query the file for total number of pages, false otherwise.
pageNumber
The page number to query. Pass 1 for the first page (default).
userState
A user-defined object that is passed to the method invoked when the asynchronous operation completes.
fileName
System.String containing the input file name to query.
totalPages
true to query the file for total number of pages, false otherwise.
pageNumber
The page number to query. Pass 1 for the first page (default).
userState
A user-defined object that is passed to the method invoked when the asynchronous operation completes.
Gets the image information from a disk file asynchronously.

Syntax

Visual Basic (Declaration) 
Overloads Public Function GetInformationAsync( _
   ByVal fileName As String, _
   ByVal totalPages As Boolean, _
   ByVal pageNumber As Integer, _
   ByVal userState As Object _
) As CodecsImageInfo
Visual Basic (Usage)Copy Code
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)
C# 
public CodecsImageInfo GetInformationAsync( 
   string fileName,
   bool totalPages,
   int pageNumber,
   object userState
)
C++/CLI 
public:
CodecsImageInfo^ GetInformationAsync( 
   String^ fileName,
   bool totalPages,
   int pageNumber,
   Object^ userState
) 

Parameters

fileName
System.String containing the input file name to query.
totalPages
true to query the file for total number of pages, false otherwise.
pageNumber
The page number to query. Pass 1 for the first page (default).
userState
A user-defined object that is passed to the method invoked when the asynchronous operation completes.

Return Value

A CodecsImageInfo object that contains the information about the specified image. See remarks about the usage of this object.

Example

Visual BasicCopy Code
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
C#Copy Code
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";
}
SilverlightCSharpCopy Code
SilverlightVBCopy Code

Remarks

Specifying true for totalPages can cause the process to be slow for files with large number of pages.

The RasterCodecs class supports getting information on image files asynchronously using the GetInformationAsync methods. When calling any of these methods, the caller thread will not be blocked and the method will return instantly with an instance CodecsImageInfo that is in a loading status (CodecsImageInfo.IsLoading set to true). You should not use the other properties of this object while the object is in loading status.

When the RasterCodecs object finishes getting the information on the file, the various properties of the CodecsImageInfo will be populated with the image file information and the CodecsImageInfo.IsLoading property will be set to false.

It is recommended that you do not poll for the CodecsImageInfo.IsLoading property to check when the image information has been collected, instead, subscribe to the GetInformationAsyncCompleted event to get notification on when the RasterCodecs.GetInformationAsync operation is completed and if any errors occurred.

The GetInformationAsyncCompleted event data will also contain the same object returned from GetInformationAsync so you do not have to keep the original object in your application.

userState will be passed to the CodecsGetInformationAsyncCompletedEventArgs.UserState member of the GetInformationAsyncCompleted event data.

Requirements

Target Platforms: Silverlight, Windows XP, Windows Server 2003 family, Windows Server 2008 family, Windows Vista, Windows 7, MAC OS/X (Intel Only)

See Also