From 07c54b46e33ccc228751a77b65e0925f86e32843 Mon Sep 17 00:00:00 2001 From: Will Norris Date: Wed, 6 Sep 2017 21:06:52 +0000 Subject: [PATCH] normalize rotate values A -90 or 630 degree rotation is the same as 270. --- transform.go | 3 ++- transform_test.go | 3 +++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/transform.go b/transform.go index 92e0d82..e4fea27 100644 --- a/transform.go +++ b/transform.go @@ -208,7 +208,8 @@ func transformImage(m image.Image, opt Options) image.Image { } // rotate - switch opt.Rotate { + rotate := float64(opt.Rotate) - math.Floor(float64(opt.Rotate)/360)*360 + switch rotate { case 90: m = imaging.Rotate90(m) case 180: diff --git a/transform_test.go b/transform_test.go index 2897bbc..f9f597f 100644 --- a/transform_test.go +++ b/transform_test.go @@ -165,9 +165,12 @@ func TestTransformImage(t *testing.T) { // rotations {ref, Options{Rotate: 45}, ref}, // invalid rotation is a noop + {ref, Options{Rotate: 360}, ref}, {ref, Options{Rotate: 90}, newImage(2, 2, green, yellow, red, blue)}, {ref, Options{Rotate: 180}, newImage(2, 2, yellow, blue, green, red)}, {ref, Options{Rotate: 270}, newImage(2, 2, blue, red, yellow, green)}, + {ref, Options{Rotate: 630}, newImage(2, 2, blue, red, yellow, green)}, + {ref, Options{Rotate: -90}, newImage(2, 2, blue, red, yellow, green)}, // flips {