aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Controller/Drawing
diff options
context:
space:
mode:
authorLuke Pulverenti <luke.pulverenti@gmail.com>2015-11-09 13:18:37 -0500
committerLuke Pulverenti <luke.pulverenti@gmail.com>2015-11-09 13:18:37 -0500
commit81bb469fe1ba61d6ff39f6473e5d4beab1764e4e (patch)
treeb9f1906251e0d4be202744f920ac2f73b85f7602 /MediaBrowser.Controller/Drawing
parent7d7f9d765405e9b35675d6a8367eb46e852a6f2a (diff)
reduce image processing
Diffstat (limited to 'MediaBrowser.Controller/Drawing')
-rw-r--r--MediaBrowser.Controller/Drawing/IImageProcessor.cs5
-rw-r--r--MediaBrowser.Controller/Drawing/ImageProcessingOptions.cs39
2 files changed, 37 insertions, 7 deletions
diff --git a/MediaBrowser.Controller/Drawing/IImageProcessor.cs b/MediaBrowser.Controller/Drawing/IImageProcessor.cs
index e1e98857f..058bf70cd 100644
--- a/MediaBrowser.Controller/Drawing/IImageProcessor.cs
+++ b/MediaBrowser.Controller/Drawing/IImageProcessor.cs
@@ -1,4 +1,5 @@
-using MediaBrowser.Controller.Entities;
+using System;
+using MediaBrowser.Controller.Entities;
using MediaBrowser.Controller.Providers;
using MediaBrowser.Model.Drawing;
using MediaBrowser.Model.Entities;
@@ -83,7 +84,7 @@ namespace MediaBrowser.Controller.Drawing
/// </summary>
/// <param name="options">The options.</param>
/// <returns>Task.</returns>
- Task<string> ProcessImage(ImageProcessingOptions options);
+ Task<Tuple<string,string>> ProcessImage(ImageProcessingOptions options);
/// <summary>
/// Gets the enhanced image.
diff --git a/MediaBrowser.Controller/Drawing/ImageProcessingOptions.cs b/MediaBrowser.Controller/Drawing/ImageProcessingOptions.cs
index e6bf86853..2b80b701e 100644
--- a/MediaBrowser.Controller/Drawing/ImageProcessingOptions.cs
+++ b/MediaBrowser.Controller/Drawing/ImageProcessingOptions.cs
@@ -4,6 +4,7 @@ using MediaBrowser.Model.Drawing;
using System;
using System.Collections.Generic;
using System.IO;
+using System.Linq;
namespace MediaBrowser.Controller.Drawing
{
@@ -29,7 +30,7 @@ namespace MediaBrowser.Controller.Drawing
public List<IImageEnhancer> Enhancers { get; set; }
- public ImageFormat OutputFormat { get; set; }
+ public List<ImageFormat> SupportedOutputFormats { get; set; }
public bool AddPlayedIndicator { get; set; }
@@ -48,19 +49,47 @@ namespace MediaBrowser.Controller.Drawing
!MaxHeight.HasValue;
}
+ public bool HasDefaultOptions(string originalImagePath, ImageSize size)
+ {
+ if (!HasDefaultOptionsWithoutSize(originalImagePath))
+ {
+ return false;
+ }
+
+ if (Width.HasValue && !size.Width.Equals(Width.Value))
+ {
+ return false;
+ }
+ if (Height.HasValue && !size.Height.Equals(Height.Value))
+ {
+ return false;
+ }
+ if (MaxWidth.HasValue && size.Width > MaxWidth.Value)
+ {
+ return false;
+ }
+ if (MaxHeight.HasValue && size.Height > MaxHeight.Value)
+ {
+ return false;
+ }
+
+ return true;
+ }
+
public bool HasDefaultOptionsWithoutSize(string originalImagePath)
{
- return (Quality == 100) &&
- IsOutputFormatDefault(originalImagePath) &&
+ return (Quality >= 90) &&
+ IsFormatSupported(originalImagePath) &&
!AddPlayedIndicator &&
PercentPlayed.Equals(0) &&
!UnplayedCount.HasValue &&
string.IsNullOrEmpty(BackgroundColor);
}
- private bool IsOutputFormatDefault(string originalImagePath)
+ private bool IsFormatSupported(string originalImagePath)
{
- return string.Equals(Path.GetExtension(originalImagePath), "." + OutputFormat, StringComparison.OrdinalIgnoreCase);
+ var ext = Path.GetExtension(originalImagePath);
+ return SupportedOutputFormats.Any(outputFormat => string.Equals(ext, "." + outputFormat, StringComparison.OrdinalIgnoreCase));
}
}
}