#pragma warning disable CS1591 using System; using System.Collections.Generic; using System.IO; using System.Threading.Tasks; using Jellyfin.Data.Entities; using MediaBrowser.Controller.Entities; using MediaBrowser.Model.Drawing; using MediaBrowser.Model.Entities; namespace MediaBrowser.Controller.Drawing { /// /// Interface IImageProcessor. /// public interface IImageProcessor { /// /// Gets the supported input formats. /// /// The supported input formats. IReadOnlyCollection SupportedInputFormats { get; } /// /// Gets a value indicating whether [supports image collage creation]. /// /// true if [supports image collage creation]; otherwise, false. bool SupportsImageCollageCreation { get; } /// /// Gets the dimensions of the image. /// /// Path to the image file. /// ImageDimensions. ImageDimensions GetImageDimensions(string path); /// /// Gets the dimensions of the image. /// /// The base item. /// The information. /// ImageDimensions. ImageDimensions GetImageDimensions(BaseItem item, ItemImageInfo info); /// /// Gets the blurhash of the image. /// /// Path to the image file. /// BlurHash. string GetImageBlurHash(string path); /// /// Gets the image cache tag. /// /// The item. /// The image. /// Guid. string GetImageCacheTag(BaseItem item, ItemImageInfo image); string GetImageCacheTag(BaseItem item, ChapterInfo chapter); string? GetImageCacheTag(User user); /// /// Processes the image. /// /// The options. /// To stream. /// Task. Task ProcessImage(ImageProcessingOptions options, Stream toStream); /// /// Processes the image. /// /// The options. /// Task. Task<(string path, string? mimeType, DateTime dateModified)> ProcessImage(ImageProcessingOptions options); /// /// Gets the supported image output formats. /// /// . IReadOnlyCollection GetSupportedImageOutputFormats(); /// /// Creates the image collage. /// /// The options. /// The library name to draw onto the collage. void CreateImageCollage(ImageCollageOptions options, string? libraryName); bool SupportsTransparency(string path); } }