GIMP New in GIMP: paint tools can autoexpand layers now

Automatically expanding layers is a new feature coming in the next development release of GIMP. Let’s see how it works, where it excels and where it needs further improvement.

Expanding the layers

Let’s say we have a 4K image with a smaller layer in the middle.

New project

Usually, when you use any of the painting tools like a Paintbrush or even a Clone tool, these tools will stop working right at the layer’s border. No matter what you do, the layer boundary cannot be crossed.

Layer not expanded

But now these tools have a new option called Expand Layers. Let’s enable it and try again with a paintbrush. As you can see, GIMP now tracks which direction you are painting in and automatically expands the layer in that direction:

Layer expanded

If you look at the settings, you can see that it’s possible to tell GIMP how far the layer will get extended each time you cross the layer’s boundary.

Amount of expansion

The setting defaults to 100 pixels. But if you paint with a really large brush and you make fast strokes, this means GIMP would have to make many extensions of the layer consecutively, and that could eat some of your computer resources. So in some cases it makes sense to make the amount of extension larger.

The other setting here is what you fill the layer with. By default it fills new layer pixels with a white color. But you can use foreground color, background color, middle grey, fill with transparent pixels or with a pattern. This is a standard set of choices used in many places in the program. Filling with a pattern is the slowest of all options, it takes a very noticeable amount of time on my laptop.

Painting beyond the canvas

In many cases your automatically expanded layer will actually be the size of the entire image, and by default you won’t be able to see any pixels outside the canvas.

To fix that, you need to go to the View menu and enable the Show All option. So now the entire viewport is rendered with a checkerboard pattern that stands for transparency, your canvas boundary is displayed using a red rectangle, and you can see past the canvas boundary.

See past the canvas boundary

But you probably also want to export everything that is visible, not just the contents of the canvas. To do so, go to the Image menu and choose Fit Canvas to Layers. Now when you export, the entire project will be in the file.

Overall, this is a very welcome new feature introduced by Shubham Daule, a student who worked on it this summer as part of the Google Summer of Code program.

It isn’t perfect though. There are several things that I think should be mentioned.

Quirks

First of all, GIMP wasn’t originally designed with an infinite canvas in mind. So I’m guessing there are some bottlenecks in its architecture that result in this automatic expansion of layers being comparatively slow. When I say “comparatively”, I mean something like MyPaint where you just pan and draw whatever, and it’s barely ever slow.

Secondly, this is not a very stable feature. I get a lot of crashes using this right now. Fingers crossed, they will all likely be fixed in time for the final GIMP 3 release.

Then the pattern fill option doesn’t get you a seamless fill:

This isn’t a feature-specific quirk, but it’s there.

And finally, there is a discoverability issue here. When this is your first time painting outside the canvas boundary, you need to know that there is the Show All option. I knew it was there, and I didn’t figure out I needed to enable it. I expected the canvas to be extended as well.

The same goes for cropping without deletion of pixels. I’ve seen a lot of people not being able to figure out how to do destructive cropping or at least see beyond canvas.

For cropping, I would enable the Delete cropped pixels checkbox by default. And as for the rest, it would probably make sense to populate the status bar with some toggles. One of them would be the Show All toggle. So when you get anything outside the canvas, it would change its color to tell the user that there’s now content outside the canvas. Clicking it then would reveal all the content in the project.

But again, this is some really great progress here! Kudos!


Featured image by ApplePC from Pixabay.


Libre Arts is a reader-supported publication. If you appreciate the work I do, donations are once again possible. You can subscribe on Patreon or make a one-time donation with BuyMeACoffee (see here for more info).

Support Libre Arts at Patreon