On 3/8/07, Sven Neumann <[EMAIL PROTECTED]> wrote:


> If you rotate by exactly 90 degrees, this is always done with
> INTERPOLATION_NONE, no matter what you select in the tool options.

Perhaps this is the culprit? An offset seems unavoidable if the
transformation is performed without interpolation. So perhaps all we
need to do is to remove this optimization (which is supposed to speed up
rotations by multiple of 90 degrees)?

BTW, do you think the rotation centre should be snapped to 0.5 pixel
increments when interpolation is NONE? It doesn't make sense to have any
more precision at that point (and can introduce glitches -- for instance,
try floating a rectangular region, then dragging the rotation centre to the
top left as precisely as you can, setting it to rotate 90 degrees, and
performing the rotation... -- compared to inputting the coordinates of the
top left yourself and then performing the 90 degree rotation. In the first
case, even fractional imprecision means the result is not even in the right

Anyway, in the case of a 90 degree rotation, it seems unlikely that the user
would want it misaligned with the pixels -- in which case no interpolation
is needed and the result should be exactly right.

Simple test case that uniformly fails, currently:

* Select a rectangular region of the picture.
* Float it
* Rotate it. Set the rotation centre to the exact top left (by first
positioning the centre near it, then editing the coordinates in the rotation
dialog to make them exact). Set the angle to 90 degrees and the
interpolation to NONE. Supersampling option appears to have no effect in
this case.
* The result may be offset by 1 pixel in X and/or Y axis; It is also missing
one line of pixels (which line is omitted varies.)
Gimp-developer mailing list

Reply via email to