diff options
Diffstat (limited to 'MediaBrowser.Server.Implementations/Drawing/ImageProcessor.cs')
| -rw-r--r-- | MediaBrowser.Server.Implementations/Drawing/ImageProcessor.cs | 52 |
1 files changed, 34 insertions, 18 deletions
diff --git a/MediaBrowser.Server.Implementations/Drawing/ImageProcessor.cs b/MediaBrowser.Server.Implementations/Drawing/ImageProcessor.cs index 27ce90787e..fbe78e9385 100644 --- a/MediaBrowser.Server.Implementations/Drawing/ImageProcessor.cs +++ b/MediaBrowser.Server.Implementations/Drawing/ImageProcessor.cs @@ -53,10 +53,6 @@ namespace MediaBrowser.Server.Implementations.Drawing private readonly IJsonSerializer _jsonSerializer; private readonly IServerApplicationPaths _appPaths; - private readonly string _croppedWhitespaceImageCachePath; - private readonly string _enhancedImageCachePath; - private readonly string _resizedImageCachePath; - public ImageProcessor(ILogger logger, IServerApplicationPaths appPaths, IFileSystem fileSystem, IJsonSerializer jsonSerializer) { _logger = logger; @@ -64,10 +60,6 @@ namespace MediaBrowser.Server.Implementations.Drawing _jsonSerializer = jsonSerializer; _appPaths = appPaths; - _croppedWhitespaceImageCachePath = Path.Combine(appPaths.ImageCachePath, "cropped-images"); - _enhancedImageCachePath = Path.Combine(appPaths.ImageCachePath, "enhanced-images"); - _resizedImageCachePath = Path.Combine(appPaths.ImageCachePath, "resized-images"); - _saveImageSizeTimer = new Timer(SaveImageSizeCallback, null, Timeout.Infinite, Timeout.Infinite); Dictionary<Guid, ImageSize> sizeDictionary; @@ -92,6 +84,30 @@ namespace MediaBrowser.Server.Implementations.Drawing _cachedImagedSizes = new ConcurrentDictionary<Guid, ImageSize>(sizeDictionary); } + private string ResizedImageCachePath + { + get + { + return Path.Combine(_appPaths.ImageCachePath, "resized-images"); + } + } + + private string EnhancedImageCachePath + { + get + { + return Path.Combine(_appPaths.ImageCachePath, "enhanced-images"); + } + } + + private string CroppedWhitespaceImageCachePath + { + get + { + return Path.Combine(_appPaths.ImageCachePath, "cropped-images"); + } + } + public void AddParts(IEnumerable<IImageEnhancer> enhancers) { ImageEnhancers = enhancers.ToArray(); @@ -391,7 +407,7 @@ namespace MediaBrowser.Server.Implementations.Drawing var name = originalImagePath; name += "datemodified=" + dateModified.Ticks; - var croppedImagePath = GetCachePath(_croppedWhitespaceImageCachePath, name, Path.GetExtension(originalImagePath)); + var croppedImagePath = GetCachePath(CroppedWhitespaceImageCachePath, name, Path.GetExtension(originalImagePath)); var semaphore = GetLock(croppedImagePath); @@ -480,7 +496,7 @@ namespace MediaBrowser.Server.Implementations.Drawing filename += "b=" + backgroundColor; } - return GetCachePath(_resizedImageCachePath, filename, Path.GetExtension(originalPath)); + return GetCachePath(ResizedImageCachePath, filename, Path.GetExtension(originalPath)); } /// <summary> @@ -578,7 +594,7 @@ namespace MediaBrowser.Server.Implementations.Drawing /// <param name="imagePath">The image path.</param> /// <returns>Guid.</returns> /// <exception cref="System.ArgumentNullException">item</exception> - public Guid GetImageCacheTag(BaseItem item, ImageType imageType, string imagePath) + public Guid GetImageCacheTag(IHasImages item, ImageType imageType, string imagePath) { if (item == null) { @@ -607,7 +623,7 @@ namespace MediaBrowser.Server.Implementations.Drawing /// <param name="imageEnhancers">The image enhancers.</param> /// <returns>Guid.</returns> /// <exception cref="System.ArgumentNullException">item</exception> - public Guid GetImageCacheTag(BaseItem item, ImageType imageType, string originalImagePath, DateTime dateModified, List<IImageEnhancer> imageEnhancers) + public Guid GetImageCacheTag(IHasImages item, ImageType imageType, string originalImagePath, DateTime dateModified, List<IImageEnhancer> imageEnhancers) { if (item == null) { @@ -644,7 +660,7 @@ namespace MediaBrowser.Server.Implementations.Drawing /// <param name="imageType">Type of the image.</param> /// <param name="imageIndex">Index of the image.</param> /// <returns>Task{System.String}.</returns> - public async Task<string> GetEnhancedImage(BaseItem item, ImageType imageType, int imageIndex) + public async Task<string> GetEnhancedImage(IHasImages item, ImageType imageType, int imageIndex) { var enhancers = GetSupportedEnhancers(item, imageType).ToList(); @@ -657,7 +673,7 @@ namespace MediaBrowser.Server.Implementations.Drawing return result.Item1; } - private async Task<Tuple<string, DateTime>> GetEnhancedImage(string originalImagePath, DateTime dateModified, BaseItem item, + private async Task<Tuple<string, DateTime>> GetEnhancedImage(string originalImagePath, DateTime dateModified, IHasImages item, ImageType imageType, int imageIndex, List<IImageEnhancer> enhancers) { @@ -693,7 +709,7 @@ namespace MediaBrowser.Server.Implementations.Drawing /// <param name="supportedEnhancers">The supported enhancers.</param> /// <returns>System.String.</returns> /// <exception cref="System.ArgumentNullException">originalImagePath</exception> - private async Task<string> GetEnhancedImageInternal(string originalImagePath, DateTime dateModified, BaseItem item, ImageType imageType, int imageIndex, List<IImageEnhancer> supportedEnhancers) + private async Task<string> GetEnhancedImageInternal(string originalImagePath, DateTime dateModified, IHasImages item, ImageType imageType, int imageIndex, List<IImageEnhancer> supportedEnhancers) { if (string.IsNullOrEmpty(originalImagePath)) { @@ -708,7 +724,7 @@ namespace MediaBrowser.Server.Implementations.Drawing var cacheGuid = GetImageCacheTag(item, imageType, originalImagePath, dateModified, supportedEnhancers); // All enhanced images are saved as png to allow transparency - var enhancedImagePath = GetCachePath(_enhancedImageCachePath, cacheGuid + ".png"); + var enhancedImagePath = GetCachePath(EnhancedImageCachePath, cacheGuid + ".png"); var semaphore = GetLock(enhancedImagePath); @@ -766,7 +782,7 @@ namespace MediaBrowser.Server.Implementations.Drawing /// <param name="imageType">Type of the image.</param> /// <param name="imageIndex">Index of the image.</param> /// <returns>Task{EnhancedImage}.</returns> - private async Task<Image> ExecuteImageEnhancers(IEnumerable<IImageEnhancer> imageEnhancers, Image originalImage, BaseItem item, ImageType imageType, int imageIndex) + private async Task<Image> ExecuteImageEnhancers(IEnumerable<IImageEnhancer> imageEnhancers, Image originalImage, IHasImages item, ImageType imageType, int imageIndex) { var result = originalImage; @@ -884,7 +900,7 @@ namespace MediaBrowser.Server.Implementations.Drawing return Path.Combine(path, filename); } - public IEnumerable<IImageEnhancer> GetSupportedEnhancers(BaseItem item, ImageType imageType) + public IEnumerable<IImageEnhancer> GetSupportedEnhancers(IHasImages item, ImageType imageType) { return ImageEnhancers.Where(i => { |
