Skip to content

Krita 5.2 Release Notes

Previous Post | Monday, 9 January 2023 | Reading time: 9 minutes | Next Post

After 5.0's big resource rewrite and 5.1's general improvements, we decided that Krita 5.2 should focus on tackling some of the biggest pain points in Krita. As such, this release contains a lot of background work that we hope to build future improvements on top of, as well as a healthy assortment of new features and fixes!

Animation

We're happy to share that two major pain points for animation got tackled: synchronized playback of audio (MR 1323) and simplifying video export (MR 1599).

 

In order to fix various audio-visual sync issues when playing animations with attached audio, Emmet and Eoin reworked much of the animation playback to use the MLT framework behind the scenes. MLT is a proven and flexible framework used by video editing programs like Kdenlive and designed with frame-by-frame synchronization in mind, and should help Krita animators feel confident that their key frames will stay lined up with their voice work or background music, both inside of the program and in their exported animation videos.

Speaking of the video export option, FFmpeg is a massively important program that manages (among other things) rendering and conversion of audio and video formats. Previously, Krita required users to point to an FFmpeg executable somewhere on their system in order to use many of the features pertaining to video, such as animation video export, video import as animation, and the Recorder Docker for recording your painting sessions. This was mostly good enough for studio use, but it was still difficult to set up for users who aren't that technical, and almost impossible to do on locked down systems like Android or even a school computer. To make this better for almost everyone, we spent some time to include a basic build of FFmpeg into Krita itself, which should include "out-of-the-box" support for every free and open container and codec format under the sun. (Along with Emmet and Eoin, big thanks to Amyspark, Ivan, Sharaf and Dmitry who put in a lot of effort to help get every possible format building and working across various platforms.) Oh, and by the way, Krita continues to support the use of alternative FFmpeg binaries in the rare case that you need to additional features that we aren't able to provide.

⚠️ Note: As of the writing this, animation export via FFmpeg is sadly still not working on Krita for Android due to restrictions of the platform itself, but we are looking for solutions to this going forward.

Text

Because our original one didn't give artists enough control over the underlying text (making it hard to use and extend, as well as write a better text tool on top of), Wolthera completely rewrote Krita's text layout engine.

Demonstration of some new text layout features include (but are not limited to): text-in-shape, text-on-path and color font support.

With the new layout engine, we can handle everything the old engine could, as well as text-on-path, vertical text, and wrapped text and text in shape. We can now also access OpenType features as well as render emoji (bitmap and colrV0 types) (MR 1607MR 1767).

This was no small feat and is only just laying the foundation for more improvements to come! For Krita 5.2, you’ll still have to use the SVG code editor to access these new features, but for Krita 5.3 we’ll be working on the text tool proper, making it on-canvas and allowing you to configure the new features with menus and presets.

Tools

Dmitry Kazakov overhauled the cumulative undo feature (MR 1780), this feature allows merging undo operations, which is useful when painting many strokes. We’ve simplified the code and made the options more intuitive to use.

The ability to anti-alias the results of the Sketch Brush Engine has been added by Przemysław Gołąb (MR 1425).

Freya Lupen added the ability to transform all selected layers at once with the transform tool (MR 1792).

Fill Tool

Deif Lou has added a new mode to the fill tool: Fill areas of similar color (MR 1577). In addition, both the fill tool and the enclose fill tool have gained Stop growing at the darkest and/or most opaque pixels and Fill all regions until a specific boundary color (MR 1549, 1560), as well as a toggle to use the same blending mode as the brush tool, or to have its own (MR 1749).

Four images next to one another, the first only shows a dot, the rest show how starting a fill at that dot will have different fill results with different options.

From the manual, filling the example in image A at the red dot will result in B for regular fill, in C with expanding the fill with a number of pixels and in D with the 'fill to boundary color' enabled.

Selection Tool

The Contiguous Selection Tool also received the same selection extending option as the Fill tool (MR 1549), and the ability to set the opacity of the selection decoration (MR 1697). Furthermore, the selection decoration has been made DPI-aware (MR 1774).

Shortcuts

Several new actions have been added:

Showing select-layers-menu in action: An on-canvas menu with the layers of the image shown, stating 'rain_shining, rain_simple, clouds and select all layers

Demonstrating the “Select Layers Menu” option, this menu shows the layers under the cursor.

We have no shortage of plans for how to make things better, but only with stable community contributions can we keep a core team of professional developers working on Krita.


Like what we are doing? Help support us

Krita is a free and open source project. Please consider supporting the project with donations or by buying training videos or the artbook! With your support, we can keep the core team working on Krita full-time.

Donate Buy something

 

Dockers

Mathias Wein brought us a ‘Wide Gamut Color Selector’. This selector almost the same as the advanced color selector, except it’s capable of selecting colors in wide-gamuts instead of just sRGB. We eventually want to remove the Advanced Color Selector in favor of this one, when we’re sure we haven’t lost any functionality (MR 1600).

Wide gamut color selector is shown here as a gradient-square with a rainbow colored circle around it.

The Layers docker got some extra display options:

File Formats

We changed how CMYK blending modes work (with a toggle in the config), (MR 1796), this aligns the blending modes to the way Photoshop handles blending modes in CMYK, simplifying exchange of PSD files with clients that require CMYK PSDs.

Rasyuqa A. H. has been improving the JPEG-XL saving and loading code, implementing CMYK for JPEG-XL, improving compression by giving the JXL library more color space information, better metadata handling and support for saving and loading raster layers to JPEG-XL, (MR 1656, 16931673, 1722, 1795). He also improved WebP compression (MR 1785), as well improving ICC transfer characteristic code (MR 1667 and 1690).

A side-by-side comparison of the internal XYB profile and the original image profile. The example consists of a closeup of a cartoon eye that shows visible ringing with the original profile.

By using JPEG's XYB color space instead of the original profile, the JPEG-XL encoder is able to give much better results both in terms of artifacts and compression on images with extreme highlights, like those that are 40 times as bright as regular white.

Other

One of the other big technical updates we did was to rewrite the brush settings code to work with the library Lager. Our old code had the brush presets and the widgets entangled in increasingly convoluted ways, which made it hard to extend the settings. We hope to use this work as a basis to redesign the brush settings widget (MR 1334).

 

Wrap around mode can now be limited to vertical or Horizontal direction, making it simpler to creating looping backgrounds.

Thank You

And that’s it! We hope that Krita 5.2 has a little something to help everyone make art.

Finally, a massive thank you to the everybody involved, including all of our contributors, development fund members and, of course, our community of artists. As an open source and community-driven project, Krita simply wouldn’t be what it is today without an entire community of people testing, coding, writing documentation, creating brushes, translating, chipping in, spreading the word, and generally supporting the project however they can.

And if you're reading that wondering if you can help too, don't hesitate to get in touch--because there's always more to be done on our mission to make a better tool for every human artist.


Like what we are doing? Help support us

Krita is a free and open source project. Please consider supporting the project with donations or by buying training videos or the artbook! With your support, we can keep the core team working on Krita full-time.

Donate Buy something