I have a photo that is 15360×5079 pixels. I want to load it into Marzipano, to make a panorama, but it requires that the file be in 1:2 aspect ratio. So the final height needs to be 7680 pixels.
The thing I’m trying to figure out is how to stretch only part of the image to fill the height. The reason I need to do this is that the 7680 pixels represent 180 degrees of vertical angle and if I stretch the entire image, the horizon line in the photo get’s shifted up.
So basically, how can I stretch the top ~1000 pixels of the image to get to the desired height?
GIMP’s Liquid Rescale plugin could help you. It’s basically similar to Photoshop’s Content Aware Scaling. It works by using a process called Seam Carving. It also allows you to paint a mask to protect specific areas you don’t want to be stretched – particularly useful if there are people or buildings in the shot. The plugin obviously can’t work miracles if you have to stretch the image lots.
Here’s an example. Original is on the left, image stretched vertically using Liquid Rescale on the right. I didn’t need to use a preservation mask on this example. The seam carving algorithm seemed to work quite well. If you experience a problem with your image, you might need to create a preservation mask from the horizon to the bottom of the image.