aboutsummaryrefslogtreecommitdiff
path: root/Emby.Drawing/ImageMagick/ImageMagickEncoder.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Emby.Drawing/ImageMagick/ImageMagickEncoder.cs')
-rw-r--r--Emby.Drawing/ImageMagick/ImageMagickEncoder.cs20
1 files changed, 19 insertions, 1 deletions
diff --git a/Emby.Drawing/ImageMagick/ImageMagickEncoder.cs b/Emby.Drawing/ImageMagick/ImageMagickEncoder.cs
index 6858c6d52..fd9ed5f1e 100644
--- a/Emby.Drawing/ImageMagick/ImageMagickEncoder.cs
+++ b/Emby.Drawing/ImageMagick/ImageMagickEncoder.cs
@@ -139,7 +139,7 @@ namespace Emby.Drawing.ImageMagick
string.Equals(ext, ".webp", StringComparison.OrdinalIgnoreCase);
}
- public void EncodeImage(string inputPath, string outputPath, int width, int height, int quality, ImageProcessingOptions options, ImageFormat selectedOutputFormat)
+ public void EncodeImage(string inputPath, string outputPath, int rotationAngle, int width, int height, 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);
@@ -150,6 +150,11 @@ namespace Emby.Drawing.ImageMagick
{
ScaleImage(originalImage, width, height);
+ if (rotationAngle > 0)
+ {
+ RotateImage(originalImage, rotationAngle);
+ }
+
DrawIndicator(originalImage, width, height, options);
originalImage.CurrentImage.CompressionQuality = quality;
@@ -166,6 +171,11 @@ namespace Emby.Drawing.ImageMagick
{
ScaleImage(originalImage, width, height);
+ if (rotationAngle > 0)
+ {
+ RotateImage(originalImage, rotationAngle);
+ }
+
wand.CurrentImage.CompositeImage(originalImage, CompositeOperator.OverCompositeOp, 0, 0);
DrawIndicator(wand, width, height, options);
@@ -179,6 +189,14 @@ namespace Emby.Drawing.ImageMagick
SaveDelay();
}
+ public static void RotateImage(MagickWand wand, float angle)
+ {
+ using (var pixelWand = new PixelWand("none", 1))
+ {
+ wand.CurrentImage.RotateImage(pixelWand, angle);
+ }
+ }
+
private void ScaleImage(MagickWand wand, int width, int height)
{
var highQuality = false;