OpenImageIO/oiio — pull request #801 by lgritz (2014-02-09 06:13:13+00:00)
Title: IBA and oiiotool 'cut' -- similar to crop, but moves to origin.

Remember that crop() is supposed to just adjust the pixel data window
and throw out any pixels outside the new ROI, but leave the pixels
within the ROI in their original position on the image plane. If you
imagine an image to be a photograph glued to a page (image plane), crop
would trim the edges of the photo but leave the retained portion glued
to the same spot as always.

But this was very confusing to people, who frequently assumed
incorrectly that the ROI would be repositioned at the image plane origin
(cut out the rectangle, pick it up off the page, and re-glue it aligned
to the corner).

So... now we have a new function, ImageBufAlgo::cut() and oiiotool --cut,
which both do what people imagined that crop did. It may be hepful to
realize that 'oiiotool --cut ' is equivalent to
'oiiotool --crop --origin +0+0 --fullpixels'.

I also fixed some confusing behavior of oiiotool --crop, I think it did
not do the right thing if given geometry that was the same size as the
old pixel window, but merely repositioned. I now believe it is correct.