using System; using MediaBrowser.Controller.Entities; using MediaBrowser.Controller.Providers; using MediaBrowser.Model.Drawing; using MediaBrowser.Model.Entities; using System.Collections.Generic; using System.IO; using System.Threading.Tasks; namespace MediaBrowser.Controller.Drawing { /// /// Interface IImageProcessor /// public interface IImageProcessor { /// /// Gets the supported input formats. /// /// The supported input formats. string[] SupportedInputFormats { get; } /// /// Gets the image enhancers. /// /// The image enhancers. IImageEnhancer[] ImageEnhancers { get; } /// /// Gets the size of the image. /// /// The information. /// ImageSize. ImageSize GetImageSize(ItemImageInfo info); ImageSize GetImageSize(ItemImageInfo info, bool allowSlowMethods); /// /// Gets the size of the image. /// /// The path. /// ImageSize. ImageSize GetImageSize(string path); /// /// Adds the parts. /// /// The enhancers. void AddParts(IEnumerable enhancers); /// /// Gets the supported enhancers. /// /// The item. /// Type of the image. /// IEnumerable{IImageEnhancer}. List GetSupportedEnhancers(IHasMetadata item, ImageType imageType); /// /// Gets the image cache tag. /// /// The item. /// The image. /// Guid. string GetImageCacheTag(IHasMetadata item, ItemImageInfo image); /// /// Gets the image cache tag. /// /// The item. /// The image. /// The image enhancers. /// Guid. string GetImageCacheTag(IHasMetadata item, ItemImageInfo image, List imageEnhancers); /// /// Processes the image. /// /// The options. /// To stream. /// Task. Task ProcessImage(ImageProcessingOptions options, Stream toStream); /// /// Processes the image. /// /// The options. /// Task. Task> ProcessImage(ImageProcessingOptions options); /// /// Gets the enhanced image. /// /// The item. /// Type of the image. /// Index of the image. /// Task{System.String}. Task GetEnhancedImage(IHasMetadata item, ImageType imageType, int imageIndex); /// /// Gets the supported image output formats. /// /// ImageOutputFormat[]. ImageFormat[] GetSupportedImageOutputFormats(); /// /// Creates the image collage. /// /// The options. void CreateImageCollage(ImageCollageOptions options); /// /// Gets a value indicating whether [supports image collage creation]. /// /// true if [supports image collage creation]; otherwise, false. bool SupportsImageCollageCreation { get; } IImageEncoder ImageEncoder { get; set; } void SaveImageSize(string path, DateTime imageDateModified, ImageSize size); bool SupportsTransparency(string path); } }