public class CodecsLoadAsyncCompletedEventArgs : CodecsAsyncCompletedEventArgs
public class CodecsLoadAsyncCompletedEvent extends CodecsAsyncCompletedEvent
public ref class CodecsLoadAsyncCompletedEventArgs : public CodecsAsyncCompletedEventArgs
class CodecsLoadAsyncCompletedEventArgs(CodecsAsyncCompletedEventArgs):
NOTE: This topic is part of RasterCodecs
Async support using the .NET System.ComponentMode.AsyncOperation
model. For .NET async/await
support this type/member is not used. Instead, refer to RasterCodecs Async Operations.
The RasterCodecs class supports loading image files asynchronously using the RasterCodecs.LoadAsync methods. When calling any of these methods, the caller's thread will not be blocked and the method will return instantly with an instance of RasterImage that is in a loading status (theRasterImage.IsLoading property is set to true). Do not use the other properties of this object while the object is in loading status.
When the RasterCodecs object finishes loading the image, the various properties of the RasterImage will be populated with the image information and data and the RasterImage.IsLoading property will be set to false.
Do not poll the RasterImage.IsLoading property to determine whether the image is finished loaded. Instead, subscribe to the RasterCodecs.LoadAsyncCompleted event to get notification when the LoadAsync operation is completed and whether any errors occurred.
The RasterCodecs.LoadAsyncCompleted event data will also contain the same object returned from RasterCodecs.LoadAsync so you do not have to keep the original object in your application.
The RasterCodecs.LoadAsyncCompleted event uses a data argument object of type CodecsLoadAsyncCompletedEventArgs. This class contains the following properties:
Property | Description |
---|---|
Uri, Stream and 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 RasterCodecs.LoadAsync method has been called. For example, if RasterCodecs.LoadAsync(Uri uri, 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 RasterCodecs.LoadAsync(String fileName, 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. |
Image |
Contains the RasterImage class instance that contains the image data being loaded. This instance is the same object returned from the RasterCodecs.LoadAsync method. While the asynchronous operation is running, the value of the RasterImage.IsLoading property will be true indicating that the object is being populated with the image information and should not be used. When the asynchronous operation completes, the RasterCodecs.LoadAsyncCompleted event will fire and Image 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. |
Error |
Contains any errors that might have occurred during the asynchronous operation. You must check this value when the RasterCodecs.LoadAsyncCompleted event fires and make sure it does not contain a valid Exception object. |
Cancelled |
Contains a value indicating whether an asynchronous operation has been canceled. For example, by calling RasterCodecs.CancelAsync when using RasterCodecs.LoadAsync with a URL |
using Leadtools;
using Leadtools.Codecs;
using Leadtools.ImageProcessing;
using Leadtools.ImageProcessing.Color;
using Leadtools.Svg;
public void LoadAsyncCompletedExample()
{
string srcFileName = Path.Combine(LEAD_VARS.ImagesDir, "Image1.cmp");
Uri uri = new Uri(srcFileName);
RasterCodecs codecs = new RasterCodecs();
// Now load the image asynchronously
codecs.LoadAsyncCompleted += new EventHandler<CodecsLoadAsyncCompletedEventArgs>(LoadAsyncCompletedExample_LoadAsyncCompleted);
object rasterImageObject = codecs.LoadAsync(uri, null);
// Notice that the returned rasterImageObject is a RasterImage with IsLoading set to true at this point
// The IsLoading will be false (and hence, the object will be usable) when the LoadAsyncCompleteted
// fires.
}
private void LoadAsyncCompletedExample_LoadAsyncCompleted(object sender, CodecsLoadAsyncCompletedEventArgs e)
{
if (e.Cancelled)
{
Debug.WriteLine("User canceled");
}
else if (e.Error != null)
{
Debug.WriteLine("Error: " + e.Error.Message);
}
else
{
// Everything is OK, get the image
RasterImage image = e.Image;
Debug.WriteLine("Image at {0} loaded OK, size: {1} by {2}", e.Uri, image.Width, image.Height);
image.Dispose();
}
// Unsubscribe to the event and dispose the RasterCodecs object
RasterCodecs codecs = sender as RasterCodecs;
codecs.LoadAsyncCompleted -= new EventHandler<CodecsLoadAsyncCompletedEventArgs>(LoadAsyncCompletedExample_LoadAsyncCompleted);
codecs.Dispose();
}
static class LEAD_VARS
{
public const string ImagesDir = @"C:\LEADTOOLS23\Resources\Images";
}
import java.io.*;
import java.net.*;
import java.nio.file.Paths;
import java.util.*;
import java.time.Instant;
import java.time.Duration;
import org.junit.*;
import org.junit.runner.JUnitCore;
import org.junit.runner.Result;
import org.junit.runner.notification.Failure;
import static org.junit.Assert.*;
import leadtools.*;
import leadtools.codecs.*;
import leadtools.codecs.RasterCodecs.FeedCallbackThunk;
import leadtools.drawing.internal.*;
import leadtools.imageprocessing.*;
import leadtools.imageprocessing.color.ChangeIntensityCommand;
import leadtools.svg.*;
public void loadAsyncCompletedExample() throws IOException, URISyntaxException {
final String LEAD_VARS_IMAGES_DIR = "C:\\LEADTOOLS23\\Resources\\Images";
String srcFileName = combine(LEAD_VARS_IMAGES_DIR, "Image1.cmp");
URI uri = Paths.get(srcFileName).toUri();
RasterCodecs codecs = new RasterCodecs();
// Now load the image asynchronously
codecs.addLoadAsyncCompletedListener(loadAsyncCompletedExampleLoadAsyncCompleted);
ILeadStream uriStream = LeadStreamFactory.create(uri);
assertTrue("Check that URI exists", uri != null);
System.out.println("The URI exists");
uriStream.close();
}
CodecsLoadAsyncCompletedListener loadAsyncCompletedExampleLoadAsyncCompleted = new CodecsLoadAsyncCompletedListener() {
@Override
public void onLoadAsyncCompleted(CodecsLoadAsyncCompletedEvent e) {
if (e.getCancelled()) {
System.out.println("User canceled");
} else if (e.getError() != null) {
System.out.println("Error: " + e.getError().getMessage());
} else {
// Everything is OK, get the image
RasterImage image = e.getImage();
System.out.printf("Image loaded OK, size: %s by %s%n", image.getWidth(), image.getHeight());
image.dispose();
}
// Unsubscribe to the event and dispose the RasterCodecs object
RasterCodecs codecs = (RasterCodecs) e.getSource();
codecs.removeLoadAsyncCompletedListener(loadAsyncCompletedExampleLoadAsyncCompleted);
codecs.dispose();
}
};
Help Collections
Raster .NET | C API | C++ Class Library | HTML5 JavaScript
Document .NET | C API | C++ Class Library | HTML5 JavaScript
Medical .NET | C API | C++ Class Library | HTML5 JavaScript
Medical Web Viewer .NET
Multimedia
Direct Show .NET | C API | Filters
Media Foundation .NET | C API | Transforms
Supported Platforms
.NET, Java, Android, and iOS/macOS Assemblies
Imaging, Medical, and Document
C API/C++ Class Libraries
Imaging, Medical, and Document
HTML5 JavaScript Libraries
Imaging, Medical, and Document