diff options
| author | Luke Pulverenti <luke.pulverenti@gmail.com> | 2017-05-14 22:27:58 -0400 |
|---|---|---|
| committer | Luke Pulverenti <luke.pulverenti@gmail.com> | 2017-05-14 22:27:58 -0400 |
| commit | 2f4f8c105e57c11c48a6c840e6f3cbb11538d82d (patch) | |
| tree | c6a09ce5b211757ce96cbe6ed797f4d3074a61f3 /Emby.Drawing.ImageMagick/ImageMagickEncoder.cs | |
| parent | bdc546ed85dfb8389184234ac74c6cc7b4046515 (diff) | |
update image processing
Diffstat (limited to 'Emby.Drawing.ImageMagick/ImageMagickEncoder.cs')
| -rw-r--r-- | Emby.Drawing.ImageMagick/ImageMagickEncoder.cs | 26 |
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); |
