Take the 2-minute tour ×
Graphic Design Stack Exchange is a question and answer site for Graphic Design professionals, students, and enthusiasts. It's 100% free, no registration required.

I'm copying and pasting an Illustrator CS3 vector graphic into Photoshop CS3. I need it to be exactly 32px high, so I enter "32px" in the transform settings.

transform photoshop lock

To my chagrin, the final image comes out to be 33px high. So I try locking the transform height at 31px and it still comes out at 33px high. Then I try to lock the transform height at 30px and it comes out at 31px high. It has skipped 32px!!!

share|improve this question
1  
Just curious how are you measuring its height after the transform? –  Alexei Jan 10 '12 at 22:03
    
I just realized what the issue is. Nevermind :) –  Alexei Jan 10 '12 at 22:56
    
@Alexei : not to answer you, but to the person who upvoted you: I am measuring by CTRL+clicking the thumbnail in the layers window and reading the height value in the info window. –  JoJo Jan 10 '12 at 22:59
    
Ok, that was a premature claim. I checked the results again, and looks like I misread a value, so no dice. Sry. –  Alexei Jan 10 '12 at 23:12

3 Answers 3

Disregard my previous answer here. False Positive. It looked like that was the case, but I was wrong.

Update: One thing that did seem to work, for real this time :), is to set the registration point (leftmost side of the Transform options) to be top-left. For me this caused Photoshop to lock the 32px height and automatically round the width to a full-pixel value as well.

I am also noticing that this might have something to do with the X/Y position of the center registration point. I can only reproduce this problem when I cause both its X and Y values to fall between pixels (e.g., X: 258.5px and Y: 260.5px instead of 258.0 and 260.0).

share|improve this answer

When you copy from illustrator and paste into Photoshop select smart object. then you should be able to double click the layer and return to illustrator and resize to the size you wish at any time. I always find Photoshop to be horrible for pixel precision layouts. for some reason it just doesn't jive.

share|improve this answer

I could be wrong, but based on the way you're "checking" the height post-transform, the problem is most-likely due to your vector object having pixel dimensions that aren't full integers, in which case the transform tool may round up or down but the selection area is always rounded up.

If you have, say, a circle that is exactly 100.1 pixels in diameter with a reference point in the exact center as is normal, then Photoshop will position the reference at a position that is a full pixel in both X and Y value (e.g. (200,200)). In reality, your reference point will be placed between the 200th and 201st pixels (along both the X and Y axes). This means the edges of your circle will extend .05px beyond the 150th and 250th pixels.

The transform tool in Ps won't display non-integer pixel values, so it'll round them down to the nearest pixel, which will show your circle to be 100x100 pixels. However, since Photoshop is a raster image editing program, it has to render everything in raster form (as evident when you zoom into vector objects). It uses anti-aliasing to render subpixel details, so if your circle only extends 5% into a particular pixel, then it'll fill that pixel in at 5% opacity (this is a simplification, but you get the idea).

But that means when you select the layer contents using Ctrl+click, it will make a selection that has a max dimension of 102x102 pixel. It may only be selecting those last 2 rows/columns of pixels on the outer edges with 5% opacity, and the selection outline may be rendered at the 100px mark, but it's still selecting 102x102 pixels because Ps can't select only the left half of a pixel or only the upper right corner of it, etc.


Solution?

I would first try to resize the object in Illustrator as danferth suggests. Make sure each dimension is a whole value, preferably the exact same size as the final raster form you want. Also make sure when you're doing this that the position of the reference point is also at whole pixels or exactly half pixels (if that dimension is odd).

Secondly, when you are transforming it in Photoshop, move the reference point to a corner as Alexei suggested and make sure you specify both dimensions in pixels, because if one is in percents, then that dimension is a lot less accurate, and I have no idea how Photoshop deals with that. It may match the less precise dimension with the more precise one, or it may just go with the X dimension or Y dimension, etc.

If that doesn't work, then lay down some guides where you want the bounding box to be. I usually use a rectangular marquee and draw out the exact position I want my object to fit into; then slap down guides along each edge, then do the transform with snap to guides on.

If all else fails, you can always just trim the extra partial pixels off. Often when Ps exhibits this sort of behavior, the pixels are just barely filled, and it doesn't really matter if you just clear those pixels.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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