handle all 8 Exif orientations
This commit is contained in:
parent
c461d55101
commit
4f667f2400
16
Program.cs
16
Program.cs
@ -386,12 +386,20 @@ public static class Util {
|
||||
|
||||
// https://sirv.com/help/articles/rotate-photos-to-be-upright/
|
||||
public static void RotateImageFromExif(Image<Rgba32> image, ushort orientation) {
|
||||
if (orientation == 1) {
|
||||
if (orientation <= 1) {
|
||||
return;
|
||||
}
|
||||
if (orientation == 8) {
|
||||
image.Mutate(x => x.RotateFlip(RotateMode.Rotate270, FlipMode.None));
|
||||
}
|
||||
var operations = new Dictionary<ushort, (RotateMode, FlipMode)> {
|
||||
{ 2, (RotateMode.None, FlipMode.Horizontal) },
|
||||
{ 3, (RotateMode.Rotate180, FlipMode.None) },
|
||||
{ 4, (RotateMode.Rotate180, FlipMode.Horizontal) },
|
||||
{ 5, (RotateMode.Rotate90, FlipMode.Vertical) },
|
||||
{ 6, (RotateMode.Rotate90, FlipMode.None) },
|
||||
{ 7, (RotateMode.Rotate270, FlipMode.Vertical) },
|
||||
{ 8, (RotateMode.Rotate270, FlipMode.None) },
|
||||
};
|
||||
var (rotate, flip) = operations[orientation];
|
||||
image.Mutate(x => x.RotateFlip(rotate, flip));
|
||||
}
|
||||
|
||||
public static Texture RenderText(string text) {
|
||||
|
Loading…
Reference in New Issue
Block a user