3

Before Transform:

Before

During Transform:

enter image description here

After Transform:

enter image description here

As the images above show, when trying to use the Transform tool to rotate a layer the pixels in the end-result are in different positions from the preview. This also happens during other Transform actions, but rotate is the most obvious.

Is there a setting that would disable this from happening? Should I be using a different tool to apply the transformations?

I'm doing sprites for a game, which will be scaled up in the engine, so I'm trying to get the end-result to be exactly like the transform preview without added anti-aliasing.


  • Problem: Pixels are shifting position between setting a transform and applying it. End result is drastically different from preview.
  • Global Image Interpolation: Nearest Neighbour (preserve hard edges)
  • Transform Image Interpolation: Nearest Neighbour
  • Snap off?: On/off, same results.
  • Grid off?: On/off, same results.
  • Which Transform?: Free Transform, Ctrl+T.
  • Layer as a Smart Object: Running the transform on a smart object shows the result in picture 3 during transformation, not just after applying it. I'm guessing when applying Transforms to rasterized layers, Photoshop runs the same functionality it uses to transform smart objects.
2

I tried a few different tricks and wasn’t able to get things looking ideal with just the transform tool.


Method 1: Screenshot

I think the easiest method to preserve the transform preview is to disable the canvas overlay for the transform handles with ViewExtras and take a screenshot at 100% zoom.

enter image description here

From there you’ll need to get transparency happening again. Maybe a good solution for that is to place the artwork on a solid colour background — a colour you’re not using anywhere else. That way you can automatically make a selection that removes it perfectly.

You’ll also need to make sure your color profile is set to Do Not Color Manage This Document and Proof Colors is disabled.


Method 2: Work at 400% scale

Scaling the document up by exactly 400% using nearest neighbour, then transforming using nearest neighbour, then scaling the document down to 25% using nearest neighbour again gives great results. They don’t match the transform preview, but it does look good.

enter image description here

This obviously works at many scaling factors, but exact multiples are easier to work with, so I’d recommend 400%, 800%, 1600% etc.


Related issues with 90º rotation

There are cases where odd × odd and even × even dimensions for artwork give different results to odd × even and even × odd, due to the origin being in centred on the pixel vs aligned to the pixel boundary (it’s only an issue when each axis’ centring is different). And in this case, that can make a difference as well, but that’s not the main issue. It is more of a problem with 90º rotation.

The solution is to add something to the layer so it makes the dimensions odd × odd or even × even. A single pixel will do it.

You might also see that problem when rotating pixel art. I’ve mentioned it here for completeness.

0

What I would do is make the.graphics on a larger scale 10:1 for example and then a scaling you require for sprites. Try this, draw a rectangule of 1000x500 px and the rotates 45 degrees, press enter and then transform it to a smaller scale maybe 45px wide. Good luck.

0

What you are seeking seems to essentially be no anti-aliasing. I don't think you can turn off anti-aliasing in Photoshop. (Photoshop does not anti-alias while transforming.)

All interpolation methods are based on "best guess". Even Nearest Neighbor is using anti-aliasing to determine the "best guess" for new pixels. To discuss them further you need to speak to Adobe directly. Only they will know the algorithms in use and any possibility of altering them.

If you really need only hard pixels, with precise placement control, you may be better off creating the artwork in a vector application where you can turn off anti-aliasing and save everything as hard-edges pixels.

Or transform in Photoshop, then clean up. As you've discovered.

-1

My recommendation is that you use other interpolation type or use smart object. If you want to see smoother pixel, then use interpolation bicubic smoother. I hope to help you.

  • Thanks for your reply, but the problem with using different interpolation methods is that it results in anti-aliasing, which I'm trying to avoid. I'm mainly trying to find a way to stop Photoshop from doing anything between the preview-phase and the end-result. I've edited the question, sorry for wasting your time. – Beardy Nov 3 '14 at 9: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.