#pragma warning disable CS1591 using System; using System.Collections.Generic; using MediaBrowser.Model.Drawing; namespace MediaBrowser.Controller.Drawing { public interface IImageEncoder { /// /// Gets the supported input formats. /// /// The supported input formats. IReadOnlyCollection SupportedInputFormats { get; } /// /// Gets the supported output formats. /// /// The supported output formats. IReadOnlyCollection SupportedOutputFormats { get; } /// /// Gets the display name for the encoder. /// /// The display name. string Name { get; } /// /// Gets a value indicating whether [supports image collage creation]. /// /// true if [supports image collage creation]; otherwise, false. bool SupportsImageCollageCreation { get; } /// /// Gets a value indicating whether [supports image encoding]. /// /// true if [supports image encoding]; otherwise, false. bool SupportsImageEncoding { get; } /// /// Get the dimensions of an image from the filesystem. /// /// The filepath of the image. /// The image dimensions. ImageDimensions GetImageSize(string path); /// /// Gets the blurhash of an image. /// /// Amount of X components of DCT to take. /// Amount of Y components of DCT to take. /// The filepath of the image. /// The blurhash. string GetImageBlurHash(int xComp, int yComp, string path); /// /// Encode an image. /// /// Input path of image. /// Date modified. /// Output path of image. /// Auto-orient image. /// Desired orientation of image. /// Quality of encoded image. /// Image processing options. /// Image format of output. /// Path of encoded image. string EncodeImage(string inputPath, DateTime dateModified, string outputPath, bool autoOrient, ImageOrientation? orientation, int quality, ImageProcessingOptions options, ImageFormat outputFormat); /// /// Create an image collage. /// /// The options to use when creating the collage. /// Optional. void CreateImageCollage(ImageCollageOptions options, string? libraryName); /// /// Creates a new splashscreen image. /// /// The list of poster paths. /// The list of backdrop paths. void CreateSplashscreen(IReadOnlyList posters, IReadOnlyList backdrops); /// /// Creates a new trickplay tile image. /// /// The options to use when creating the image. Width and Height are a quantity of thumbnails in this case, not pixels. /// The image encode quality. /// The width of a single trickplay thumbnail. /// Optional height of a single trickplay thumbnail, if it is known. /// Height of single decoded trickplay thumbnail. int CreateTrickplayTile(ImageCollageOptions options, int quality, int imgWidth, int? imgHeight); } }