4

It seems like Gimp is not rotating correctly.

I have two duplicate layers of this GIF: enter image description here

It looks like this:

enter image description here

I click the rotate tools, click one of the layers, and choose 90 degrees. It looks like this:

enter image description here

Then I click the rotate button to apply the rotation, and I see this:

enter image description here

The rotation is off. Does anyone know what is happening here?

  • Are you seeing the rotated frame (or floating layer) overlaid on the initial frame? – Jerry101 Mar 11 '14 at 5:54
  • Yes, I am. ----- – Paul Draper Mar 11 '14 at 6:17
  • Is that the solution or is something else wrong with the rotation? :-) – Jerry101 Mar 11 '14 at 7:49
  • @Jerry101, the when I preview the rotation (2nd image -- good), it looks good. Then a click the rotate button to apply it, and I end up with the 3rd image (bad). – Paul Draper Mar 11 '14 at 14:44
  • I don't really know what is going on, but a comparison of your before and after shows that the base layer ("the original orientation") is being altered along with the top layer ("the rotated layer"). – horatio Mar 11 '14 at 16:59
3

The general fix to any anti-aliasing problems when rotating 90° is to use the Layer>Transform>Rotate 90° commands instead of the free rotation tools.

Per the GIMP docs:

The Rotate 90° clockwise command rotates the active layer by 90° around the center of the layer, with no loss of pixel data. The shape of the layer is not altered, but the rotation may cause the layer to extend beyond the bounds of the image.

Using the fixed 90° rotation commands in Layer>Transform>Rotate will always give you a sharp result (since they just move pixels around; they don't actually perform any anti-aliasing or interpolation).

I haven't been able to recreate this issue using the normal rotate tool, so I'm not quite sure what the cause of the issue is, but this should resolve it regardless. Hope it helps!

2

You say you have "two duplicated layers". By default, the rotate tool will do its thing only on the active layer. For all I can tell, the bottom image is the result of your rotation applied to one layer, and the other layer unchanged, stacked on top of each other.

Just use the Layer's dialog (ctrl + L) to toggle the visibility of your layers and check the result.

  • To clarify, I want the second image, but I got the third. – Paul Draper Mar 12 '14 at 6:15
  • 1
    Ah - if you are talking about the extra semi-trnsparent pixels, those are added by the interpolation algorithm, as part of antialiasing. Just set interpolation to "None" then. – jsbueno Mar 15 '14 at 16:13

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.