Infinite canvas? 🤔

As a long time Mypaint user, I’ve often wondered if an infinite canvas option would be feasible in Krita.

While having a defined canvas area is more important overall, there are times when I’ve appreciated not being confined by a document edge - especially when just free sketching.

So - I’m asking if such a thing is compatible with Krita’s code, and if so - is anyone else interested in this as a feature?

Cheers :kissing_heart:

Krita does have an infinite canvas.
If you draw past the edge you are drawing off-canvas. The Move tool can then be used to bring off-canvas content onto the canvas.

Some people use it for mixing palettes or for reference sketching, etc, whatever.

If you use Image -> Trim to Current Layer, the canvas will in fact grow to include all off-canvas content on that layer. It will also remove any off-canvas content on other layers that are larger in extent than the current layer so you need to be careful with that one.
Image -> Resize is safe if you want to do that.

1 Like

That’s a good point! :thinking:

So the difference is maybe just that Mypaint doesn’t frame the canvas by default?

I was thinking about it earlier - really you could just oversize the canvas so there is plenty of room to work with. It’s just that psychologically - it is nice to be able to sketch without borders if you don’t have an image in mind.

I was experimenting earlier - I created a big canvas (A3 600dpi) then activated the KanvasBuddy and switched to canvas only mode. The result was…

…actually better than sketching in Mypaint! :yum:

I noticed the file size was very small even though I didn’t crop it down - just saved it as a small grey sketch in the middle of a big white canvas. So it’s minimal stress really - Just sketch and go. :nerd_face:

Krita has an efficient technique for storing parts of the layer which have literally nothing on them so you can do that and have a small .kra file.

Sometimes, I make a 2048 x 2048 image as the intended final size, flood fill it with green (say) then set the opacity to 10% then Resize to 4000 x 4000 dragging the red (current size) rectangle to the bottom left.
Then I have a 4000 x 4000 canvas with a pale green overlay square to indicate the ‘final product area’. That can be turned off of course.

Then I’m free to doodle and construct or whatever in the ‘white’ areas and then copy stuff into the ‘green’ area to compose a final product.

When I’m satisfied, I Save, then select the green overlay layer, then Trim to Current Layer, then Export, then Close without Saving (very important).
If I was sensible I’d do the final Trim on a copy of the saved .kra file.

1 Like

Yes Krita allocates layer data in small tiles, which allows them to grow dynamically.

Rendering the canvas at dynamic size too could be a lot more tricky though. For example, I remember some commits fiddling with the guides and assistants which need repositioning when resizing the canvas.
And I guess a lot of other parts would need to change too to cope with dynamic canvas bounds, including the paint device classes that composite the layers to a final projection, so it’s probably a bit late to change the concept.

1 Like