Make a new document, 1000x1000 pixels, white background
Get the flag you want and add it to the newly created document on a new layer, on a new document.
Now CTRL+Click on the flag layer thumbnail to get the selection of the flag and make a new layer above it. On this new layer, apply a gradient like mine.
Your image should look like this, with these layers:
Now set the gradient layer on Multiply mode and merge it with the flag layer. Your image should look like this:
Now deselect and go to Filters>Liquify. These are my settings. Now with the brush drag the dark sides of the flag down and the whiter portions up or inverse. It will need a little practice to get it right. Your image in the liquify filter should look like this:
Now hit OK. Your flag is made. But let's add some more: Hit CTRL+T to enter the free transfer mode then go to distort and distort it's shape as you like.













More Photoshop: