From 7e8f2cf503172f9ad1168e64e6091a5a99d38d0b Mon Sep 17 00:00:00 2001 From: Luna Kim <177369799+luna-y-kim@users.noreply.github.com> Date: Thu, 30 Jul 2026 00:32:39 -0700 Subject: [PATCH] fix(IBA): reorient() cases for transpose and transverse Orientations 5 and 7 were swapped: case 5 produced transverse and case 7 produced transpose. Fix both cases. Also, fix the orientation labels for 6 and 8 in the metadata conventions docs. Fixes #4661 Signed-off-by: Luna Kim <177369799+luna-y-kim@users.noreply.github.com> --- src/doc/stdmetadata.rst | 4 ++-- src/libOpenImageIO/imagebufalgo_orient.cpp | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/doc/stdmetadata.rst b/src/doc/stdmetadata.rst index 17ea3e2a87..ebacaadff0 100644 --- a/src/doc/stdmetadata.rst +++ b/src/doc/stdmetadata.rst @@ -89,9 +89,9 @@ Display hints 3 rotated :math:`180^\circ` (bottom to top, right to left) 4 flipped vertically (bottom to top, left to right) 5 transposed (left to right, top to bottom) - 6 rotated :math:`90^\circ` clockwise (right to left, top to bottom) + 6 rotated :math:`90^\circ` counter-clockwise (right to left, top to bottom) 7 transverse (right to left, bottom to top) - 8 rotated :math:`90^\circ` counter-clockwise (left to right, bottom to top) + 8 rotated :math:`90^\circ` clockwise (left to right, bottom to top) === ========================================================================== .. option:: "PixelAspectRatio" : float diff --git a/src/libOpenImageIO/imagebufalgo_orient.cpp b/src/libOpenImageIO/imagebufalgo_orient.cpp index fb1e656ce8..a3fc0066d3 100644 --- a/src/libOpenImageIO/imagebufalgo_orient.cpp +++ b/src/libOpenImageIO/imagebufalgo_orient.cpp @@ -362,7 +362,7 @@ ImageBufAlgo::reorient(ImageBuf& dst, const ImageBuf& src, int nthreads) case 3: ok = ImageBufAlgo::rotate180(dst, src, ROI(), nthreads); break; case 4: ok = ImageBufAlgo::flip(dst, src, ROI(), nthreads); break; case 5: - ok = ImageBufAlgo::rotate270(tmp, src, ROI(), nthreads); + ok = ImageBufAlgo::rotate90(tmp, src, ROI(), nthreads); if (ok) ok = ImageBufAlgo::flop(dst, tmp, ROI(), nthreads); else @@ -370,7 +370,7 @@ ImageBufAlgo::reorient(ImageBuf& dst, const ImageBuf& src, int nthreads) break; case 6: ok = ImageBufAlgo::rotate90(dst, src, ROI(), nthreads); break; case 7: - ok = ImageBufAlgo::flip(tmp, src, ROI(), nthreads); + ok = ImageBufAlgo::flop(tmp, src, ROI(), nthreads); if (ok) ok = ImageBufAlgo::rotate90(dst, tmp, ROI(), nthreads); else