bool ImageBufAlgo::reorient (ImageBuf &dst, const ImageBuf &src, int nthreads) { ImageBuf tmp; bool ok = false; switch (src.orientation()) { case 1: ok = dst.copy (src); break; case 2: ok = ImageBufAlgo::flop (dst, src); break; case 3: ok = ImageBufAlgo::rotate180 (dst, src); break; case 4: ok = ImageBufAlgo::flip (dst, src); break; case 5: ok = ImageBufAlgo::rotate270 (tmp, src); if (ok) ok = ImageBufAlgo::flop (dst, tmp); else dst.error ("%s", tmp.geterror()); break; case 6: ok = ImageBufAlgo::rotate90 (dst, src); break; case 7: ok = ImageBufAlgo::flip (tmp, src); if (ok) ok = ImageBufAlgo::rotate90 (dst, tmp); else dst.error ("%s", tmp.geterror()); break; case 8: ok = ImageBufAlgo::rotate270 (dst, src); break; } dst.set_orientation (1); return ok; }