This is a work in progress of the release notes for Krita 4.0. This page will change as the release gets closer. More than likely, the existing list of changes or features will get bigger.
We have overhauled our vector tools massively in the past few months.
One of the biggest changes is that we changed from the Open Document ODG vector format to the widely-used SVG vector format. SVG is a W3C standard that can be opened by many different programs, so we felt that it made more sense to use this as the default format.
You can now open and save SVGs inside Krita. Kra files, when opened as a ZIP will have it’s vector layers stored in SVG.
Improvements and Vector UX changes
We went out of our way to make the tools much more user friendly.
The text tool is probably implemented now??? No idea, honestly.
The big chosen stretchgoal of last year’s Kickstarter, python scripting is now part of Krita. We also are including a large amount of scripts with Krita so you can see how it works for examples. You can see some of what we are including below. The scripts are translatable to work in multiple languages.
Delving into a little tech-talk: Python was implemented by making a general library for the bindings, and then have a sip file to turn those into python bindings. What that means practically is that someone could implement other scripting languages pretty easily if they are willing to put in the work.
Python plugins are managed via settings->Configure Krita->Python Plugin Manager.
Activated plugins can be accessed via the tools->scripts.
From experience we know that maintaining a scripting plugin can be quite difficult. For that reason we’ve chosen to take several wishes and to turn them into python scripts. This allows us to make sure python scripting is useful and test it against bugs, while providing good example scripts for users.
Let’s take a look at some of them:
Internal Scripting Console
The most important of these plugins is a small python console, written in python. This console will allow you to run scripts in Krita on the fly. Important for when you are testing things, or for when you just want to write a small script.
The python editor is equipped with syntax-colorization and a small debugger to tell you when your code does not make sense. It does not have code-completion.
Assign Profile to Image
This plugin allows you to assign instead of convert a color to a given color space. Such a feature was missing from Krita proper, and we imagine it is one of those things someone might want to use in scripting, so hence it’s incarnation as a python script.
Ten Brushes Script
Assign specific brush presets to shortcuts. You can do this with dragging and dropping the preset into the shortcut slots. Of course you can open the script up and modify how this works to your heart’s desire!
When Krita auto saves in the background, you don’t have to worry about the small freezes that previously happened. This also works when exporting animation and allows you to work while exporting.
Krita has access to six different color models and four different bitdepths, yet the palette docker and its file format could only handle 8bit sRGB. It is natural, as the GPL(that is, Gimp PaLette, not Gnu Public License) file format was designed in a time when anything more seemed like decadence.
However, that time was a long while ago. So we’ve finally taken the plunge and designed a new fileformat, consisting, yet again, from a zip file with an xml inside(We are nothing if not consistent!). This fileformat, KPL, can store any color that Krita can handle. Furthermore, changing the fileformat also allowed another change: It is now possible to group colors in Krita!
On top of this new file-format, Krita can also load swatchbooker(SBZ) palettes as well as Scribus’ xml palettes, both courtesy of L. E. Segovia.
We implemented a passive warning system that will inform you which features are active in the document but cannot be saved to the chosen file format. Furthermore, the dialog will allow you to save to KRA as well. This situation usually comes to us like this…
“Help! I had an image with layers, and I saved it to PNG, and now Krita refuses to load the layers! How do I get them back?”
This is a question that comes up surprisingly often. More experienced readers will know that the problem is that file formats like PNG don’t save things like layer data. This is why we have working file formats like Krita’s KRA. We also added an option to allow you to save a copy of your work as a KRA in this situation.
Krita is not the first Free Open Source Software to attempt to solve this peculiar issue. The other attempt had as a solution to force users to save to the working file format of the application, and have them explicitly use the export to save to other file formats. People did not like this solution very much.
Our G’Mic support was always a bit difficult because of the way how we had to get G’Mic and Krita to talk to one another. But that time should be past now.
The variables vh and vw have been added to the numerical input, they represent the width and the height.
You can now set Krita to use Brush sizes beyond a 1000 pixels, up to 10.000! This requires a restart. Furthmore, be careful with the big sizes as a 10.000 pixel brush is about as heavy as copy-pasting an image of 10kx10k at the bitdepth of the image you are painting on. It might cause out-of-memory errors.
The Brush Settings had a number of UX changes and features added to make it easier to use and figure out
A new option allows you to resize your thumbnails in the brush settings and preset dockers. The thumbnail size is saved for future use. Good if you want to see a lot of brush presets in list view.
Thanks to a rogue patch by Andrew Kamakin, you can now see a pixel grid when you zoom in past 800% (the zoom percentage and color are configurable). Great for precision art where it is hard to tell where pixels start and end.
We have made a few changes to the pop-up palette after a few suggestions from people
There is a new isometric option where you can specify the angles and spacing for each axis. This is good for isometric artwork. This option can be found in the grid docker.