

The most important features Krita currently has to offer, are:
Plugins: Krita is extensible through plugins. There are tools, brush engines colorspaces, paint operations, filters, pixel generators and generic user interface plugins.
Scriptable: Krita is scriptable in Python and Ruby using Kross, the cross language scripting engine that originated in Kexi. The scripting is compatible with PyQt/KDE and Korundum for adding GUI items, such as dialog boxes.
Color models: Krita uses lcms for a dependable color workflow using icc profiles for importing, exporting, selecting paint colors, printing, cutting and pasting. 8, 16, and 32 bit colorspaces are available (RGB, CMYK, L*a*b*, ...) and colors can be selected from a color wheel, rgb or grayscale sliders or with a palette. Krita also supports OpenCTL based colorspace plugins and custom colorspace plugins, for instance the painterly colorspaces that support mixing colors in a realistic way.
Editing and viewing: Unlimited undo and redo are available. You can cut, copy and paste between layers and images, with conversion through icc profiles if this is necessary. OpenGL is supported for display. The view can be made fullscreen and can be split. Rulers are available, the image can be zoomed, and for maximizing the workspace all palette windows can be hidden in one go. Also a histogram palette is available.
Images and layers: Layers and entire images can be mirrored, sheared, rotated and scaled, converted between colorspaces, and layers in different colorspaces can be merged. An image can be separated into colorspace channels.
Layers: Layers can be added, removed, grouped, locked, made (in)visible, and re-ordered. Filter layers (layers which perform a filter function) can be added as well. A layer can be saved as a separate image and its colorspace can be changed. There are clone layers that copy all or part of a layer to another place in the layer stack. There are vector layers that allow you to combine your raster images with rich text, vector graphics and even, though KOffice's plugin system, musical notation or charts.
Masks: masks can be applied to a layer. There are transparency masks, for masking out a part of a layer, filter masks that apply a filter to part of a layer, and local selection masks that constrain editing on a layer to a selection without actually hiding anything.
Brush engines: Krita comes with a collection of brush engine plugins, some mimic classical paint tools such as are familiar to anyone who has used an electronic paint application, others are programmable, and others again try to mimic traditional media.
Tools: there are tools to make it easy to paint lines, ellipses and other shapes, as well as a full complement of selection tools. Painting tools can be constrained by guides that make it easy to paint shapes in a natural-looking way, without being overly neat.
Filters: Krita can multithread the operation of some filters. Filters are previewed on the image canvas itself instead of in a small preview window. Available filters include color adjustment, sharpen or blur, emboss, raindrops, and more. There is also a category of plugins called "generators", which can programmatically fill an area or a layer with pixels.
Brushes: Gimp brush shapes can be used, both colored and grayscale brushes and pipe brushes. Custom brushes can be created, even from entire layers or images. Colored brushes can also be used as grayscale brushes.
One of the most distinguishing features in Krita is its color management. If you put two screens side to side, you will notice that there is often a lot of difference in the way they display colors. Even white, especially white, is often not the same thing at all. On one screen it can be a dirty yellow, on another screen a sickly bluish. Very seldom is it a creamy milk-white. The same holds, unfortunately, for scanners, printers and digital cameras. So, if you want to see the right colors on screen and on paper, being the colors that you saw when taking your snapshot, you will have to compensate.
Krita can do this for you: in Krita, a color is (almost) never just a set of numbers, one for each color channel; it is a set of numbers with information attached. And that extra information is contained in a profile: your image has a profile, your scanner has a profile, your camera should have a profile and your screen has a profile. When passing information from your image to your screen, the profiles are checked and the correct color is computed. This may cause a little slowness, now and then, but the result is that you can work with colors, instead of almost meaningless RGB triplets.
Available colorspaces are: 8 bit/channel RGB, CMYK, grayscale, 16 bit/channel RGB, CMYK, grayscale and L*a*b*, “half” RGB, and 32 bit float RGB (HDR) and LMS, as well as a set of painterly colorspaces that compute color mixing using the Kubelka-munk equations, which, in plain words means that if you mix yellow and blue you get green, not purple.
Krita currently supports the following image formats, both for importing and exporting, apart from its own: Raw, PNG, TIFF, JPEG, Dicom, XCF, PSD, GIF, BMP, XPM, Targa, RGB, and OpenEXR. Additionally, Krita can import ICO files. PSD (the Photoshop file format) is only supported up to version 6, from version 7 on, the Photoshop file format is closed.
Embedded icc profiles and exif information are preserved on export to supporting file formats. Krita's native file format stores icc and exif information.
Krita supports import and export of not just exif metadata, but also xmp.