use image magick for auto-orientation

This commit is contained in:
Luke Pulverenti
2016-01-21 11:53:03 -05:00
parent aaf316884d
commit c71a319685
9 changed files with 37 additions and 35 deletions

View File

@@ -257,7 +257,7 @@ namespace Emby.Drawing
imageProcessingLockTaken = true;
_imageEncoder.EncodeImage(originalImagePath, cacheFilePath, GetRotationAngle(options.Item), newWidth, newHeight, quality, options, outputFormat);
_imageEncoder.EncodeImage(originalImagePath, cacheFilePath, AutoOrient(options.Item), newWidth, newHeight, quality, options, outputFormat);
}
return new Tuple<string, string>(cacheFilePath, GetMimeType(outputFormat, cacheFilePath));
@@ -281,35 +281,32 @@ namespace Emby.Drawing
}
}
private int GetRotationAngle(IHasImages item)
private bool AutoOrient(IHasImages item)
{
var photo = item as Photo;
if (photo != null && photo.Orientation.HasValue)
{
switch (photo.Orientation.Value)
{
case ImageOrientation.TopLeft:
return 0;
case ImageOrientation.TopRight:
return 0;
case ImageOrientation.BottomLeft:
return 270;
case ImageOrientation.BottomRight:
return 180;
case ImageOrientation.LeftBottom:
return -90;
case ImageOrientation.LeftTop:
return 0;
case ImageOrientation.RightBottom:
return 0;
case ImageOrientation.RightTop:
return 90;
}
return true;
}
return 0;
return false;
}
//private static int[][] OPERATIONS = new int[][] {
// TopLeft
//new int[] { 0, NONE},
// TopRight
//new int[] { 0, HORIZONTAL},
//new int[] {180, NONE},
// LeftTop
//new int[] { 0, VERTICAL},
//new int[] { 90, HORIZONTAL},
// RightTop
//new int[] { 90, NONE},
//new int[] {-90, HORIZONTAL},
//new int[] {-90, NONE},
//};
private string GetMimeType(ImageFormat format, string path)
{
if (format == ImageFormat.Bmp)