The GIMP scripting command gimp-image-resize is described in the Procedure Browser as follows: "gimp-image-resize resizes the image so that it's new width and height are equal to the supplied parameters. Offsets are also provided which describe the position of the previous image's content."

How can I achieve the same effect without using a script command? More specifically, how can I expand the paintable area and place the existing image in that expanded paintable area without expanding the existing image. As a novice user, I thought that the command Image -> Scale Image might be the same as "gimp-image-resize" ... but I have discovered that they have very different effects. I have also tried various combinations of expanding the canvas, or changing the layer but all without success.

I hope that my question belongs here (as being about not scripting) rather than on StackOverflow.

  1. Resize the canvas using Image > Canvas Size to the required dimensions, you can click and drag the thumbnail to position it, or enter an offset, or centre it. Click Resize.

  2. In the layers panel, select the layer you wish to expand, and click Layer > Layer to image size - now you can paint on the whole layer.


There is no "paintable area" at the image level. You paint on layers, and layers have boundaries because layers can be smaller than the canvas (or offset from the canvas) (for instance, text layers are normally just big enough for the text they contain, so can align them and stack them vertically).

You can enlarge (or shrink) the canvas using Image>Canvas size. Unlike Image>Scale image, this will not scale/stretch anything, and will just add space. The dialog allows you to position the existing image contents in the new canvas and optionally to automatically resize layers so that their boundaries match the new canvas, so that you can paint in the added space.

Some more detail, in Gimp parlance:

  • An image is what you would call a "project" in other applications, a thing than can be saved as a whole (ie, the XCF file), it's a set of layers, channels, paths... that work together to create a visible result.
  • A layer is an individual image part that can be painted, moved, and transformed on its own. You can see layers as stacked pieces of tracing paper(*)/sheets of painted glass.
  • The canvas is the table on which you put these layers. It is painted with a checkerboard so you see where the stack of layers is transparent throughout. The canvas is also a porthole through which you see the result image (what you will "export" as a JPG/PNG...). Sometimes the word "image" is used instead of "canvas". But note that "Image>Scale image" has the right name, since it scales everything: layers, channels, paths, and of course the canvas.
  • Although layers are very often the same size as the canvas, this is not mandatory. Text layers are usually smaller. Other layers can be bigger than the canvas, or shifted, and so have parts not visible on the canvas (these can still be painted). Image>Fit canvas to layers extends the canvas to make all these hidden bits visible.
  • Channels on the other hand are always the size of the canvas.
  • A specific channel is the selection mask, often just called the "Selection". This selection applies to all actions on all layers. You can create the selection using a layer (Color select) and apply it to do something on another layer (Bucket-fill). The selection is always clipped to the canvas (so if there is a selection, you cannot act on the layers parts that lies outside the canvas).

(*) in PS and Gimp, the French for "Layer" is "Calque" which originally the word for "tracing paper".

  • Thank you for the extra information. I have got thoroughly confused with the terms "image", "layer" and "canvas". I thought I knew what they meant but clearly missed something. Although the answer from Billy Kerr clearly works and is correct, it is not obvious to me why the action is "Layer to image size". I was looking for a command exactly the opposite ... Image to Layer size !! Once I have expanded the canvas, is not the image expanded? Where is the "image" boundary as opposed to the layer boundary and the canvas boundary? I'd appreciate an explanation or guidance about what to read. – user02814 Jan 5 '20 at 10:54
  • @user02814 See edited answer – xenoid Jan 5 '20 at 11:27
  • That is very useful and clear! – user02814 Jan 6 '20 at 0:29

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.