Class ImageLoadersRegistry

Class ImageLoadersRegistry

Namespace: Aspose.Imaging
Assembly: Aspose.Imaging.dll (25.7.0)

Represents the image loaders registry.

public static class ImageLoadersRegistry
   {
       private static readonly Dictionary<string, Func<Stream, IImageLoader>> _loaders;
       static ImageLoadersRegistry()
       {
           _loaders = new Dictionary<string, Func<Stream, IImageLoader>>();
           Register("jpeg", () => new JpegImageLoader());
           Register("png", () => new PngImageLoader());
       }
       public static void Register(string format, Func<Stream, IImageLoader> loader)
       {
           _loaders[format] = loader;
       }
       public static IImageLoader LoadFromStream(Stream stream, string format)
       {
           if (_loaders.TryGetValue(format, out var loader))
               return loader(stream);
           throw new ArgumentException("Unknown image format.");
       }
   }

Inheritance

object ImageLoadersRegistry

Inherited Members

object.GetType() , object.MemberwiseClone() , object.ToString() , object.Equals(object?) , object.Equals(object?, object?) , object.ReferenceEquals(object?, object?) , object.GetHashCode()

Properties

RegisteredDescriptors

Gets the registered descriptors.

public static IImageLoaderDescriptor[] RegisteredDescriptors
   {
      get;
   }

Property Value

IImageLoaderDescriptor []

RegisteredFormats

Gets the registered image loading formats.

public static FileFormat RegisteredFormats
    {
        get;
    }

Property Value

FileFormat

Methods

CreateFirstSupportedLoader(Stream, LoadOptions)

Creates the first found loader suitable for the specified stream’ and optionally the loadOptions'.

public static IImageLoader CreateFirstSupportedLoader(
    Stream stream,
    LoadOptions loadOptions
)
{
    var supportedLoaders = new[]
    {
        new JpegLoader(),
        new PngLoader(),
        new GifLoader(),
    };
    foreach (var loader in supportedLoaders)
    {
        if (loader.CanLoad(stream))
        {
            return loader;
        }
    }
    throw new Exception("No supported image loader found.");
}

Parameters

stream Stream

The stream.

loadOptions LoadOptions

The load options.

Returns

IImageLoader

The loader which supports the specified stream’ and loadOptions’ or null if no such loader is found.

Remarks

The first loader will be actually the last registered.

GetFirstSupportedDescriptor(Stream, LoadOptions)

Gets the fist found supported descriptor suitable for the specified stream’ and optionally the loadOptions'.

public static IImageLoaderDescriptor GetFirstSupportedDescriptor(
    Stream stream,
    LoadOptions loadOptions)
{
    var descriptors = ImageLoader.GetLoaders()
        .Select(loader => loader.CreateDescriptor())
        .ToList();
    for (int i = 0; i < descriptors.Count; i++)
    {
        if (descriptors[i].CanLoad(stream, loadOptions))
            return descriptors[i];
    }
    return null;
}

Parameters

stream Stream

The stream.

loadOptions LoadOptions

The load options.

Returns

IImageLoaderDescriptor

The loader descriptor which supports the specified stream’ and loadOptions’ or null if no such descriptor is found.

Remarks

The first loader descriptor will be actually the last registered.

GetFirstSupportedDescriptorByFileFormat(FileFormat)

Gets the first supported file format by its type name.

public static IImageLoaderDescriptor GetFirstSupportedDescriptorByFileFormat(FileFormat fileFormat)
    {
        var supportedDescriptors = ImageSettings.AllLoaders.Where(loader => loader.SupportedFileFormats.Contains(fileFormat));
        if (supportedDescriptors.Any())
            return supportedDescriptors.First();
        return null;
    }

Parameters

fileFormat FileFormat

The supported descriptor file format.

Returns

IImageLoaderDescriptor

The first found loader descriptor or null if not such descriptor is found.

Remarks

The first loader descriptor will be actually the last registered.

GetFirstSupportedDescriptorByTypeName(string)

Gets the first supported descriptor by its type name.

public static IImageLoaderDescriptor GetFirstSupportedDescriptorByTypeName(string descriptorTypeName)
    {
        var supportedDescriptors = ImageLoaderFactories.GetAllRegisteredFactories();
        foreach (var factory in supportedDescriptors)
        {
            if (factory.CanLoadDescriptorType(descriptorTypeName))
                return factory.CreateImageLoaderDescriptor();
        }
        return null;
    }

Parameters

descriptorTypeName string

The descriptor type name.

Returns

IImageLoaderDescriptor

The first found loader descriptor or null if not such descriptor is found.

Remarks

The first loader descriptor will be actually the last registered.

Register(IImageLoaderDescriptor)

Registers the specified image loader descriptor.

public static void Register(IImageLoaderDescriptor imageLoaderDescriptor)
    {
    }

Parameters

imageLoaderDescriptor IImageLoaderDescriptor

The image loader descriptor.

RegisterLoader(IImageLoaderDescriptor)

Registers the loader.

public static void RegisterLoader(IImageLoaderDescriptor loaderDescriptor)
    {
    }

Parameters

loaderDescriptor IImageLoaderDescriptor

The loader descriptor to register.

UnregisterLoader(IImageLoaderDescriptor)

Unregisters the loader.

public static void UnregisterLoader(IImageLoaderDescriptor loaderDescriptor)
   {
   }

Parameters

loaderDescriptor IImageLoaderDescriptor

The loader descriptor to unregister.

 English