mirror of
https://github.com/jellyfin/jellyfin.git
synced 2025-12-22 16:54:46 +03:00
support photo orientation
This commit is contained in:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user