After the big resource rewrite, we decided that we should focus on tackling the biggest pain points in Krita. This release thus contains a lot of background work that we hope to build future improvements on top of.

Animation

Two major pain points for animation got tackled: The playback of audio (MR 1323), and simplified video export (MR 1599).

For playback of audio, Emmet and Eoin wanted to tackle the syncing issues, so we reworked the whole audio playback mechanism to use MLT framework.

For the video export option, we used to require people to point at an FFMpeg executable, a program which has all the edge cases of video file format generation covered and is in itself up to date. This was good enough for studio use, but it was difficult to set up if you’re not that technical, and very hard to do on locked down systems like Android or even a school computer. We’ve therefore spend some time to include the basics of FFMpeg into Krita itself.

Text

Wolthera completely rewrote the text layout. This is partially because the original layout engine we used didn’t give us enough control over the underlying text, which made it hard to extend, as well as write a better text tool on top of.

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).

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. For Krita 5.2 however, you’ll have to use the SVG code editor to get to the new features.

Tools

Dmitry Kazakov overhauled the culmulative undo feature (MR 1780), this feature allows merging undo operations, which is useful when painting many different 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).

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 have gained Fill all regions until a specific boundary color (MR 1549), as well as a toggle to use the same blending mode as the brush tool, or to have its own (MR 1749).

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

Shortcuts

Several new actions have been added:

  • Toggle Eraser Preset by Freya Lupen, (MR 1689) allows you to switch to the preset that would otherwise be stored for the ‘eraser’ end of the tablet stylus. Not all stylii have an eraser side, and some people really prefer to activate it by hotkey.
  • Sample Screen Color by killy |0veufOrever, (MR 1720) allows you to select a color anywhere on the screen, even outside of Krita, similar to the same option in the Select a Color window.
  • Select Layers From Menu canvas input setting by killy |0veufOrever, (MR 1766) allows you to select a layer on-canvas from a dropdown menu.
  • Krita now have a Clip Studio Paint compatible shortcut scheme, courtesey of Freya Lupen, (MR 1565).
  • Krita can now detect conflicts in the canvas input setting shortcuts thanks to Sharaf Zaman, (MR 1725).

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).

The layers docker got some extra display options:

  • On Android, selecting multiple layers is tricky, therefore Sharaf implemented extra checkboxes on the side of the layers (MR 1665).
  • Freya Lupen added the ability to see extra information about the layer opacity and blending modes (MR 1501MR 1520MR 1615), as well as making the automatic layer suffixes optional MR 1498. On top of that, it’s now possible to change the scaling filter of file-layers (M 1784).
  • Măcelaru Tiberiu has ensured the brush preset docker looks good in horizontal mode: MR 1670.
  • Brush Preset History is now configurable (MR 1623).
  • undo, redo and more for the palette docker (MR 1617).

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 a loading code, implementing CMYK for JPEG-XL, improving compression by giving the JXL library more color space information, and better metadata handling, (MR 1656, 16931673, 1722). He also improved WebP compression (MR 1785), as well improving ICC transfer characteristic code (MR 1667 and 1690).

  • Cedric Ressler has improved EXR multi-layer handling (MR 1677).
  • Amyspark has improved the RAW import, both the UI (MR 1679) and sped it up by using tiles (MR 1694).

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).

  • Freya Lupen has added ability to remove single Recent Document (MR 1666).
  • The tablet tester now has access to tilt data thanks to Joshua Goins (MR 1678).
  • Sharaf Zaman implemented easier resource location selection for android (MR 1771).
  • Stephen Wilson has made sure that Krita resets document meta data when using a template (MR 1769).
  • Agata Cacko has spend a significant amount of time on getting better display names of color profiles (MR 1768)
  • Amyspark has been cleaning up the UI left and right (MR 1683MR 1696MR 1702MR 1701MR 1732MR 1744MR 1742MR 1772).