|
@@ -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)
|