aboutsummaryrefslogtreecommitdiff
path: root/Emby.Drawing.ImageMagick/ImageMagickEncoder.cs
diff options
context:
space:
mode:
authorLuke Pulverenti <luke.pulverenti@gmail.com>2017-05-14 22:27:58 -0400
committerLuke Pulverenti <luke.pulverenti@gmail.com>2017-05-14 22:27:58 -0400
commit2f4f8c105e57c11c48a6c840e6f3cbb11538d82d (patch)
treec6a09ce5b211757ce96cbe6ed797f4d3074a61f3 /Emby.Drawing.ImageMagick/ImageMagickEncoder.cs
parentbdc546ed85dfb8389184234ac74c6cc7b4046515 (diff)
update image processing
Diffstat (limited to 'Emby.Drawing.ImageMagick/ImageMagickEncoder.cs')
-rw-r--r--Emby.Drawing.ImageMagick/ImageMagickEncoder.cs26
1 files changed, 23 insertions, 3 deletions
diff --git a/Emby.Drawing.ImageMagick/ImageMagickEncoder.cs b/Emby.Drawing.ImageMagick/ImageMagickEncoder.cs
index f603c4950..13bde3ca5 100644
--- a/Emby.Drawing.ImageMagick/ImageMagickEncoder.cs
+++ b/Emby.Drawing.ImageMagick/ImageMagickEncoder.cs
@@ -130,7 +130,7 @@ namespace Emby.Drawing.ImageMagick
string.Equals(ext, ".webp", StringComparison.OrdinalIgnoreCase);
}
- public void EncodeImage(string inputPath, string outputPath, bool autoOrient, int width, int height, int quality, ImageProcessingOptions options, ImageFormat selectedOutputFormat)
+ public void EncodeImage(string inputPath, ImageSize? originalImageSize, string outputPath, bool autoOrient, int quality, ImageProcessingOptions options, ImageFormat selectedOutputFormat)
{
// Even if the caller specified 100, don't use it because it takes forever
quality = Math.Min(quality, 99);
@@ -144,6 +144,16 @@ namespace Emby.Drawing.ImageMagick
originalImage.CurrentImage.TrimImage(10);
}
+ if (options.CropWhiteSpace || !originalImageSize.HasValue)
+ {
+ originalImageSize = new ImageSize(originalImage.CurrentImage.Width, originalImage.CurrentImage.Height);
+ }
+
+ var newImageSize = ImageHelper.GetNewImageSize(options, originalImageSize);
+
+ var width = Convert.ToInt32(Math.Round(newImageSize.Width));
+ var height = Convert.ToInt32(Math.Round(newImageSize.Height));
+
ScaleImage(originalImage, width, height, options.Blur ?? 0);
if (autoOrient)
@@ -162,9 +172,19 @@ namespace Emby.Drawing.ImageMagick
}
else
{
- using (var wand = new MagickWand(width, height, options.BackgroundColor))
+ using (var originalImage = new MagickWand(inputPath))
{
- using (var originalImage = new MagickWand(inputPath))
+ if (options.CropWhiteSpace || !originalImageSize.HasValue)
+ {
+ originalImageSize = new ImageSize(originalImage.CurrentImage.Width, originalImage.CurrentImage.Height);
+ }
+
+ var newImageSize = ImageHelper.GetNewImageSize(options, originalImageSize);
+
+ var width = Convert.ToInt32(Math.Round(newImageSize.Width));
+ var height = Convert.ToInt32(Math.Round(newImageSize.Height));
+
+ using (var wand = new MagickWand(width, height, options.BackgroundColor))
{
ScaleImage(originalImage, width, height, options.Blur ?? 0);