using MediaBrowser.Controller.Entities; using MediaBrowser.Controller.Providers; using MediaBrowser.Model.Drawing; using MediaBrowser.Model.Entities; using System; using System.Collections.Generic; using System.IO; using System.Threading.Tasks; namespace MediaBrowser.Controller.Drawing { /// /// Interface IImageProcessor /// public interface IImageProcessor { /// /// Gets the image enhancers. /// /// The image enhancers. IEnumerable ImageEnhancers { get; } /// /// Gets the size of the image. /// /// The path. /// ImageSize. ImageSize GetImageSize(string path); /// /// Gets the size of the image. /// /// The path. /// The image date modified. /// ImageSize. ImageSize GetImageSize(string path, DateTime imageDateModified); /// /// Adds the parts. /// /// The enhancers. void AddParts(IEnumerable enhancers); /// /// Gets the supported enhancers. /// /// The item. /// Type of the image. /// IEnumerable{IImageEnhancer}. IEnumerable GetSupportedEnhancers(BaseItem item, ImageType imageType); /// /// Gets the image cache tag. /// /// The item. /// Type of the image. /// The image path. /// Guid. Guid GetImageCacheTag(BaseItem item, ImageType imageType, string imagePath); /// /// Gets the image cache tag. /// /// The item. /// Type of the image. /// The original image path. /// The date modified. /// The image enhancers. /// Guid. Guid GetImageCacheTag(BaseItem item, ImageType imageType, string originalImagePath, DateTime dateModified, IEnumerable imageEnhancers); /// /// Processes the image. /// /// The entity. /// Type of the image. /// Index of the image. /// The original image path. /// if set to true [crop whitespace]. /// The date modified. /// To stream. /// The width. /// The height. /// Width of the max. /// Height of the max. /// The quality. /// The enhancers. /// Task. Task ProcessImage(BaseItem entity, ImageType imageType, int imageIndex, string originalImagePath, bool cropWhitespace, DateTime dateModified, Stream toStream, int? width, int? height, int? maxWidth, int? maxHeight, int? quality, List enhancers); } }