Photoshop – Scale an image based on part of the image

Ok, so here’s my problem. This is Bill:

enter image description here

Bill is a handsome dude, and his image is 400px wide (take note of the pink border). I can size him down to 300px no problem. At full size, he is 109px at his head, and sized down to 300, Bill is 81px. But now I have this image that someone gave me:

enter image description here

So now, the canvas size has increased, and Bill has some scenery, a snazzy balloon, and a…dog?

So I want to scale this new image down just like I did the original, but how do I scale the whole image down so that the box ends up being 300×300? I want the whole image to be there, and for Bill to be the same size as he was when I scaled down the original, so that when compared side by side with the original, Bill is comparatively the same size.

I am obviously generalizing here, but I run into this problem on a regular basis. It’s not a problem if just the width or height has changed, because I can scale down based on the dimension that wasn’t changed. But when both width and height have changed, all I can think to do is use the measure tool on a consistent part of the image (like the box or Bill’s head), resize the image, measure again, and repeat until I get it pretty accurate.

Is there an easier, more accurate way to do this? I’m using Photoshop CS6.


This is Ben. Ben’s head is 100 pixels wide. But you want his head to be 80 pixels wide.

enter image description here

You draw a box 80 pixels wide in the center of the area you want to resize relative to (in this case, Ben’s head).

enter image description here

cmd+T (Mac) / Ctrl+T (Windows) with everything you want to resize selected. This can be a single image, group, multiple layer, it doesn’t matter.

Move the transform origin point to the center of the box you drew.

Hold SHIFT + ALT + drag the one of the transform corner points until the area you want to resize relative to (Ben’s head) fits nicely inside the box. (If the box you drew and transform origin aren’t exactly in the center of Ben’s head, you will probably need to nudge Ben in to the correct position.)

enter image description here

Ben’s head is now 80 pixels wide.

This seems like a bit of a workaround and can be harder to get exact with more complex images, but it’s the best I’ve come up with!

Another Option

As suggested by Alin in the comments, another option is to simply calculate the new width. All you need to do this is the current width and desired width of the area you want to resize relative to (In my example, Ben’s head, 100px and 80px).

Then calculate the percentage decrease and new scale.

size difference = original size - new size

percentage decrease = ( size difference / original size ) * 100

scale = 100 - percentage decrease

In my example, scaling from 100px to 80px, you obviously just need to scale to 80%, but my example is an over simplification. In more complex images and when you don’t know the measurements you need I prefer to transform visually like in my example, otherwise you need to work out the new measurements and percentages (and I hate working out percentages!). Calculating the scale may be a better option for you though.

Source : Link , Question Author : Captain Hypertext , Answer Author : Cai

Leave a Comment