diff --git a/src/pixie/fileformats/jpeg.nim b/src/pixie/fileformats/jpeg.nim index 5fd6ca1..3cafa48 100644 --- a/src/pixie/fileformats/jpeg.nim +++ b/src/pixie/fileformats/jpeg.nim @@ -988,16 +988,16 @@ proc buildImage(state: var DecoderState): Image = result.flipVertical() of 5: result.rotate90() + result.flipHorizontal() of 6: result.rotate90() - result.flipHorizontal() of 7: result.rotate90() result.flipVertical() - result.flipHorizontal() of 8: result.rotate90() result.flipVertical() + result.flipHorizontal() else: failInvalid("invalid orientation") diff --git a/src/pixie/images.nim b/src/pixie/images.nim index d4eb875..7ff8d45 100644 --- a/src/pixie/images.nim +++ b/src/pixie/images.nim @@ -171,11 +171,12 @@ proc flipVertical*(image: Image) {.raises: [].} = ) proc rotate90*(image: Image) {.raises: [PixieError].} = - ## Rotates the image 90 degrees. + ## Rotates the image 90 degrees clockwise. var copy = newImage(image.height, image.width) for y in 0 ..< copy.height: for x in 0 ..< copy.width: - copy.data[copy.dataIndex(x, y)] = image.data[image.dataIndex(y, x)] + copy.data[copy.dataIndex(x, y)] = + image.data[image.dataIndex(y, image.height - x - 1)] image.width = copy.width image.height = copy.height image.data = copy.data