Extensive re-write

Removed the origin location parameter.  Changed the code to transform
the image in one step instead of up to four.  Increased performance.