This will eventually replace the PixelOperations methods.
Former-commit-id: a1058efb148c3fee54c69000698c96ade0c99c4f
Former-commit-id: 3704335fe924758d8d615ddc377f06b061308f0b
Former-commit-id: cb03cf38dab552cf2677fcfd8396f19906b80f1d
Getting closer but still not quite right.
Former-commit-id: a4a9888db607a76e6173b49ce6f063754eccf117
Former-commit-id: 6e2e78e949c7d2a9f66572ca55c57a8cb5e85691
Former-commit-id: 63567e454b970474ae443266d065fc251f2f65e7
Not working correctly just now. Y calc is wrong.
Former-commit-id: 21b81ada54ca20a5ba1f08cb0fce9c57dd7237b2
Former-commit-id: b9800debdc5306d6935be95808bef72b34c2b9bc
Former-commit-id: b06159adfd6ec098e13f9509a14b0f5bb3d8369e