I need to resize an image based on part of image. I could talk about it all day but you won't understand so I am going to show you what I need.
Try the liquid resize gimp plugin: http://liquidrescale.wikidot.com/en:examples It will dynamically detect how repeatable certain pixels are (similar to edge detection), and will repeat based on this repeatability. Moreover, you can select areas you don't want stretched, and areas that you do want stretched.
- *Image>Canvas size and set the image size to what you want
- Duplicate the layer
- Move the copy of the layer to the bottom of the canvas (View>Snap to canvas edges may help)
- In the layer at the top of the canvas, remove the bottom
- In the layer at the bottom of the canvas, remove the top
- With the rectangle selection, select a strip as wide as the image, and as high as possible but containing only the vertical rules
- Edit/Copy, Edit>Paste, Layer>To new layer
- Make duplicates of that strip layer and arrange them vertically to fill the gap between the top an bottom layers.
If the image is under 1024 pixels wide, things can be easier: Steps 1-6 are identical, but then
- Add a new layer
- Start the bucket fill tool, and set the Pattern to "Clipboard" (first pattern)
- Bucket fill the layer with the pattern (don't forget to remove the selection)
- Move that layer below the top/bottom layers