LEADTOOLS Image File Support (Leadtools.Codecs assembly)

GetInformationAsyncCompleted Event

Show in webframe
Example 







Indicates that an asynchronous get information operation has been completed.
Syntax
public event EventHandler<CodecsGetInformationAsyncCompletedEventArgs> GetInformationAsyncCompleted
'Declaration
 
Public Event GetInformationAsyncCompleted As EventHandler(Of CodecsGetInformationAsyncCompletedEventArgs)
'Usage
 
Dim instance As RasterCodecs
Dim handler As EventHandler(Of CodecsGetInformationAsyncCompletedEventArgs)
 
AddHandler instance.GetInformationAsyncCompleted, handler
public event EventHandler<CodecsGetInformationAsyncCompletedEventArgs> GetInformationAsyncCompleted

            
synchronized public void addGetInformationAsyncCompletedListener(CodecsGetInformationAsyncCompletedListener listener)
synchronized public void removeGetInformationAsyncCompletedListener(CodecsGetInformationAsyncCompletedListener listener)
            
add_GetInformationAsyncCompleted(function(sender, e))
remove_GetInformationAsyncCompleted(function(sender, e))

public:
event EventHandler<CodecsGetInformationAsyncCompletedEventArgs^>^ GetInformationAsyncCompleted
Event Data

The event handler receives an argument of type CodecsGetInformationAsyncCompletedEventArgs containing data related to this event. The following CodecsGetInformationAsyncCompletedEventArgs properties provide information specific to this event.

PropertyDescription
Cancelled (Inherited from System.ComponentModel.AsyncCompletedEventArgs)Gets a value indicating whether an asynchronous operation has been canceled.
Error (Inherited from System.ComponentModel.AsyncCompletedEventArgs)Gets a value indicating which error occurred during an asynchronous operation.
FileName (Inherited from Leadtools.Codecs.CodecsAsyncCompletedEventArgs)Gets the file name this asynchronous operation is using.
Info Gets the CodecsImageInfo class instance that contains the information about the image file.
Stream (Inherited from Leadtools.Codecs.CodecsAsyncCompletedEventArgs)Gets the stream this asynchronous operation is using.
Uri (Inherited from Leadtools.Codecs.CodecsAsyncCompletedEventArgs)Gets the URI this asynchronous operation is using.
UserState (Inherited from System.ComponentModel.AsyncCompletedEventArgs)Gets the unique identifier for the asynchronous task.
Remarks

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 about 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 determine whether the image information has been collected. Instead, subscribe to the GetInformationAsyncCompleted event to get notification on when the GetInformationAsync(String,Boolean,Int32,Object) operation is completed and whether 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.

The GetInformationAsyncCompleted event uses a data argument object of type CodecsGetInformationAsyncCompletedEventArgs. This class contains the following properties:

Property Description
CodecsGetInformationAsyncCompletedEventArgs.Uri, CodecsGetInformationAsyncCompletedEventArgs.Stream and CodecsGetInformationAsyncCompletedEventArgs.FileName

Contains the URI, stream or file name passed to the method that initialized this asynchronous operation.

Only one of these properties can be a valid value (not a null reference) at any time The property that contains a valid reference depends on what version of GetInformationAsync method has been called.

For example, if GetInformationAsync(Uri uri, bool totalPages, int pageNumberobject, object userState) is being called, the Uri will contain the same URI passed to the method while Stream and FileName will both be null. If GetInformationAsync(string fileName, bool totalPages, int pageNumberobject, object userState) is being called, the FileName will contain the same file name string value passed to the method while Uri and Stream will both be null and so on.

CodecsGetInformationAsyncCompletedEventArgs.Info

Contains the CodecsImageInfo class instance that contains the information about the image file. This instance is the same object returned from the GetInformationAsync method. While the asynchronous operation is running, the value of the CodecsImageInfo.IsLoading will be true indicating that the object is being populated with the information and should not be used. When the asynchronous operation completes, the GetInformationAsyncCompleted event will fire and Info will contain the final and ready to use object. If an error occurs, this property will be set to null and the object is disposed internally by the toolkit.

CodecsGetInformationAsyncCompletedEventArgs.Error

Contains any errors that might have occurred during the asynchronous operation. You must check this value when the GetInformationAsyncCompleted event fires and make sure it does not contain a valid System.Exception object.

CodecsGetInformationAsyncCompletedEventArgs.Cancelled

Contains a value indicating whether an asynchronous operation has been canceled. For example, by calling CancelAsync when using RasterCodecs.GetInformationAsync with a URL.

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

Public Sub GetInformationAsyncCompletedExample()
   Dim srcFileName As String = Path.Combine(LEAD_VARS.ImagesDir, "Image1.cmp")
   Dim uri As New Uri(srcFileName)

   Dim codecs As New RasterCodecs()

   ' Now get information about the file asynchronously
   AddHandler codecs.GetInformationAsyncCompleted, AddressOf GetInformationAsyncCompletedExample_GetInformationAsyncCompleted
   Dim imageInfoObject As Object = codecs.GetInformationAsync(uri, 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 GetInformationAsyncCompletedExample_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 GetInformationAsyncCompletedExample_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;

public void GetInformationAsyncCompletedExample()
{
   string srcFileName = Path.Combine(LEAD_VARS.ImagesDir, "Image1.cmp");
   Uri uri = new Uri(srcFileName);

   RasterCodecs codecs = new RasterCodecs();

   // Now get information about the file asynchronously
   codecs.GetInformationAsyncCompleted += new EventHandler<CodecsGetInformationAsyncCompletedEventArgs>(GetInformationAsyncCompletedExample_GetInformationAsyncCompleted);
   object imageInfoObject = codecs.GetInformationAsync(uri, 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 GetInformationAsyncCompletedExample_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>(GetInformationAsyncCompletedExample_GetInformationAsyncCompleted);
   codecs.Dispose();
}

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

Target Platforms

See Also

Reference

RasterCodecs Class
RasterCodecs Members

 

 


Products | Support | Contact Us | Copyright Notices
© 2006-2014 All Rights Reserved. LEAD Technologies, Inc.