The first release after the big 5.0, Krita 5.1 comes with a ton of smaller improvements and technical polish. This release sees updates to usability across the board, improved file format handling, and a whole lot of changes to the selection and fill tools.
Much thanks for David Revoy for the majority of the feature demonstrations below, as well as Wojtryb for compiling his favorite new features into a video:
As a free and open source project, Krita needs your help! Please consider supporting the project by becoming a member of the development fund. With your contribution, we can keep a core team of professional developers working on Krita.
The biggest change to layer handling in Krita 5.1 is Santhosh Anguluri’s Google Summer of Code project 2021: Operations for multiple layers (MR 888). This enables copy, cut and paste and clear on when having a selection on multiple layers at once.
Beyond that there’s a small number of UI tweaks made to the layer docker: You can now control how strongly layers indent when in a group. Furthermore a button got added for showing the context menu when rightclick is unavailable, and finally, file layers now report if their file cannot be found (MR 1443, MR 1213, MR 1419).
You can now paint on selection masks with blending modes (MR 1437).
WebP support (MR 891MR 1268). We had basic WebP support already, but this adds full support using WebP Codec with every possible toggle imaginable.
Support for Photoshop layered Tiffs (MR 944). Despite Adobe being the steward of the Tiff spec, Photoshop has a unique non-spec compliant way of saving layers into a tiff file: Putting a whole PSD document into the metadata. We now support loading data from such files. On top of this, the export dialog for TIFF was reworked, and we now load and save metadata to tiff (MR 1015).
OpenExr support for 2.3 and 3+ (MR 1049). Because of a mistake with our build system, Krita couldn’t see OpenExr 2.3 and above, this is fixed now.
Improve retrieval of image data from clipboard (MR 1296, MR 1431). When you copy data between programs, that data is put into the system clipboard. Sometimes when this is done with images programs add several different options. We’ve improved the UI that allows you to choose which of these options you want to use.
PSD fill layers and color labels (MR 1309). This allows loading and saving layer color labels to PSD, as well as loading and saving the gradient, pattern and color fill layers. This extends the ASL parser inside Krita, which means that layer styles have better color and pattern import as well. Most PSDs use these fill layers in combination with vector masks, which are not yet implemented.
Support for JPEG-XL (MR 1363). Joining the implementation of Avif last release, JPEG-XL is the newest update of the JPEG image file format, and one of the new set of file formats that is designed to bring wide color gamuts and HDR to the web. We haven’t yet enabled saving and loading of the HDR color spaces to JPEG-XL, but what we do have is saving and loading animations, making JPEG-XL the first fileformat that doesn’t require FFMPEG to allow exporting animations.
Support for ASE and ACB color palettes (Commit 6c7ed052). The former is used among Adobe applications, the latter is the format used by Photoshop to describe it’s spot-color list. We urge people to be a little careful with the latter as it seems that the Pantone values in particular get updated quite frequently. Discuss with your printer which spot colors you want to use.
Some of the biggest changes this time around have been purely technical.
Fix OpenGl ES for OCIO pipeline (MR 1262), this means OCIO now works on Android. We also use the new GPU pipeline for VFX Platform CY2021 now (Commit 3d24ed13).
Build a more recent version of Angle for windows (MR 1373, MR 1353). The one we were using was a bit old and this new one has many fixes. Angle has been the most reliable way to allow us to use OpenGL on Windows.
Added YCbCr profiles (MR 1330). We never shipped YCbCr profiles because there were no open versions of them. This made testing certain features quite hard, in particular file testing. So we created some YCbCr profiles and added them as default profiles.
Add support for llvm-mingw toolchain on windows (MR 1372).
Allow compiling with RISC-V (MR 1416). None of us own RISC-V hardware, so this one’s mostly for enthusiasts.
Port krita from VC to XSIMD (MR 1404). We use these libraries for so-called ‘vector instructions’, which is a special way of using the computer that works especially well for repetitive math like blending and mixing colors together. VC’s development has stalled, so switching to XSIMD now allows us to worry less about the future. A nice side effect is that colored and lightness brush tips ended up with a good speed boost, as well as having a speed boost on ARM devices (that’s tablets and mobile phones).
Add an option to build Krita with precompiled headers (MR 1471). This is something that’s mostly useful for developers, as it’ll reduce compilation.
Give better information about the location of the AppData directory on windows (MR 1304). The AppData directory can differ greatly when using Krita from the Windows Store, so we wanted to inform the folks that use that method better.
The specific color selector has been extended with a color preview for and a HSV option for RGB. (MR 916, MR 1434).
Touch gestures (dragging fingers to pan, zoom, rotate) are now configurable, you can choose which action does what (MR 1341).
We used to have a very vague button that said something like ‘use aspect of pixels’, right next to the zoom. What this mysterious button actually did was switch the canvas zoom between showing pixels at the size of pixels, and showing the canvas at it’s physical size. The latter, if Krita has the available information, means that an inch in Krita is an actual inch on your monitor, which is useful for print, while the former is more useful for digital-only work like game graphics. This button has been revamped to communicate this more clearly (MR 1220).
More configuration for the pop-up palette (MR 922).
Deif Lou has spend the last 6 months greatly improving the functionality of the fill and contiguous selection tools.
These tools now have better organized tool options (MR 1360, MR 1453), which is necessary, because there’s now sliders for variable softness (MR 1174) and proper anti-aliasing based on the FXAA algorithm (MR 1350).
There’s also three new ways of applying a fill. The first is Continuous Fill (MR 1160), which allows dragging the cursor over all regions you wish to fill.
The second is a whole new Enclose and fill tool (MR 1415), which allows dragging out a rectangle or other shape over everything you wish to fill, and Krita will automatically determine which sections to fill.
The final one consist of massive improvements to the drag-and-drop swatch functionality (MR 1135). You can now drop swatches onto a section of the canvas, and Krita will use the current fill tool options to determine how the dropped color will fill the section.