It's explained in the image below. I need to stretch like 2nd option.
The normal stretch can be done using Distort option. Is it possible to do it in Photoshop?
Graphic Design Stack Exchange is a question and answer site for Graphic Design professionals, students, and enthusiasts. It only takes a minute to sign up.Sign up to join this community
There's a "content-aware scale" function for this, pretty straight forward. Select all three color blocks with rectangle marquee tool, edit --> content-aware scale, drag the top middle control point upwards, hit ENTER. That's it. Noted: 1, before dragging, adjust "amount" value in the upper toolbar, the lower the value, the 3 color blocks get more evenly stretched. Unfortunately this function does not work with smart object, so you gotta try a few times; 2, if you want to fully protect the lower blue part, do not include it in marquee selection; 3, not working well in PS CS5, working well at least in CC2014.
You can make a gradient and use it as a displacement map, only vertical displacement! In displacement map 50% grey means no displacement, black means =maximum to negative direction, white means =maximum to plus direction. Unfortunately I'm not that good in math that I can present the exact gradient.
There's also the spherize filter, which can be used as vertical only, but you will not get exactly wanted proportionality distortion.
You can make manually a warp which stretches your original shape vertically to the wanted distortion. It happens to have three divisions, which is perfect. Warp a smart object and use the generated smart filter to any images (which are not too big).
Not in Photoshop, but in other software (Krita, Affinity Photo) one can define distortion with equations. You define formulas where the content of pixel (X,Y) is taken from. The formulas can contain X, Y, some standard functions and a few parameters (=constants than you define separately)
You have given only three discrete samples of the effect of the wanted distortion function. Quickly watched the following formula seems to do the wanted y-direction distortion (like numerous other formulas, too):
Y=Yo((V/Vo)^0,73) where V=the vertical pixel coordinate to where you want to find a content, Y=the place where you should fetch the content from, Yo and Vo are freely selectable coordinates. The content to Vo will be copied from Yo.
It's tried here (y grows downwards):
In the left there's a transformed version. In the right there's a copy of the original.
The blurriness at borders is unfortunate consequence of anti-aliasing in a low-res image. It cannot be switched off easily.