I am curious if it is possible to use a gradient as a mask for the built-in distortion transformations.. such as the pincushion 'barrel' distortion, but only in a specified region with variable intensity, like the example below:
original image:

gradient mask:

desired result:

This is something that could be done with ease in Photoshop--selecting the center region with the elliptical marquee tool, and then 'feathering' the selection by 15px or so, and applying the distortion. (Or even doing it exactly as above using a gradient as a layer mask, like the example above.)
Simply cropping out the region of interest, distorting it, then replacing it back into the original image in the same spot doesn't work, because of issues with alpha blending on the edges (im using an image that has transparency in it). Any advice would be much appreciated.