public override bool CanConvertFrom(
ITypeDescriptorContext context,
Type sourceType
)
public:
bool CanConvertFrom(
ITypeDescriptorContext^ context,
Type^ sourceType
) override
def CanConvertFrom(self,context,sourceType):
context
Type context information used to evaluate conversion.
sourceType
The type of the source that is being evaluated for conversion.
true if the converter can convert the provided type to an instance of RasterImage; otherwise, false.
The CanConvertFrom method will return true if any of the supported object types is passed into the sourceType parameter. However, this does not mean that the conversion operation will succeed, this depends on whether the data contains a valid image that LEADTOOLS can load. For more information, refer to RasterImageTypeConverter.
using Leadtools;
using Leadtools.Codecs;
using Leadtools.ImageProcessing.Core;
public void RasterImageTypeConverterExample()
{
string srcFileName = Path.Combine(LEAD_VARS.ImagesDir, "Ocr1.tif");
// Construct the source URL to use the source file and load the image
Uri uri = new Uri(srcFileName);
RasterCodecs codecs = new RasterCodecs();
// Create a new instance of the RasterImageTypeConverter class
RasterImageTypeConverter rasterImageConverter = new RasterImageTypeConverter(codecs);
// We should be able to convert from a URL
Debug.Assert(rasterImageConverter.CanConvertFrom(uri.GetType()));
// Convert the image
// The return value from RasterImageTypeConverter.ConvertFrom might be an image that is
// still loading. So, we must subscribe to the RasterCodecs.LoadAsyncCompleteted
// event to obtain the finished image
codecs.LoadAsyncCompleted += new EventHandler<CodecsLoadAsyncCompletedEventArgs>(rasterImageTypeConverterExample_LoadAsyncCompleted);
object rasterImageObject = rasterImageConverter.ConvertFrom(uri);
// 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 rasterImageTypeConverterExample_LoadAsyncCompleted(object sender, CodecsLoadAsyncCompletedEventArgs e)
{
// Check if the user canceled or if we have errors
if (e.Cancelled)
{
Debug.WriteLine("Canceled by the user");
}
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>(rasterImageTypeConverterExample_LoadAsyncCompleted);
codecs.Dispose();
}
static class LEAD_VARS
{
public const string ImagesDir = @"C:\LEADTOOLS22\Resources\Images";
}
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