Friday, November 29, 2013

New OpenGL features in Krita Lime!

Krita team is now entirely in the process of preparation for the upcoming 2.8 release. The branch is planned for this weekend, but with Krita Lime you can test all the new features right now!

Important Note:
After update you will need to reset your "Canvas Input Settings" by removing ~/.kde4/share/apps/krita/input directory to get the new shortcuts working.

During November we were working not only on fixing bugs, but also on improving rendering quality and performance of Krita. As you might have already read, Krita 2.8 is going to have a new significantly reworked openGL engine with the High Quality Filtering Mode. This will make the quality of veeery zoomed-out really much better. It will be helpful for people who need to work with hi-resolution images, which should be scaled down up to 10% to be shown on screen.
We also spent some hours on making the engine much efficient and responsive! Now if you tablet generates too many events, the engine will start limiting the frame rate and the speed will not suffer. Note, that the tablet events will not be dropped, so your lines will keep smooth as if nothing happens at all! :)

The only drawback of the new High Quality mode is that it needs your GPU/driver support openGL 3.0. But that should not be a problem, since most of the modern GPUs, including integrated ones, support that.

Another nice new feature of Krita 2.8 is the Dynamic Outline in Hover Mode. Previously, you could see the rotation/mirroring of the brush outline only when you paint, but now it is available even when you just hover the cursor over your canvas. Just for a fun effect of it, select Smudge_Rake brush preset and activate Rotation->Fuzzy dynamic and see a helicopter flying over your screen! ;)

On our way to Krita 2.8 we also refactored our Tool Mode Shortcuts system. Now the special modes of Paint Line/Rectangle/Ellipse tools are available again! If you press Ctrl or Alt while painting a rectangle, the Symmetric or Move mode will be activated correspondingly. Note, that now "Ctrl + Click" and "Click + Ctrl" are two different shortcuts! The former activates the Color Picking tool, the latter --- activates Symmetric Rectangle mode.

We have also enhanced the Color Picking Shortcuts. Now you have four options available in most of the painting tools:

Ctrl + Left Click --- pick color from merged image to Foreground Color
Ctrl + Alt + Left Click --- pick color from merged image to Background Color

Ctrl + Right Click --- pick color from current layer to Foreground Color
Ctrl + Alt + Right Click --- pick color from current layer to Background Color

Friday, September 27, 2013

Krita Lime: packages with hot-new Wraparound Mode and Clones Array

This week was really successful for Krita, we got four feature branches merged into master! Two of them will be quite interesting for game-designers and painters working with 3D models.

Wraparound Mode

In this new mode (which can be activated by pressing 'W' shortcut) the sides of the image get connected to each other and the image becomes infinitely-cycled. The picture becomes repeated on a screen (openGL mode only) as if it is a texture being wrapped around some surface. The painting with a brush also becomes cycled: just move your stroke and it'll appear on the other side of the image!

For the lovers of psychedelic effects we also added wraparound support to the Move Tool. Just activate it and enjoy dragging the borders of the image to and fro.

Clones Array

This feature (which can be found in Layer menu) allows the user to create a set of clones (tiles) which are linked to the current layer and are offset to some specific position. This feature will be useful for texture painters and online games creators where the world consists of a repeated set of 2D tiles.

How to Install

New features are already present in Krita Lime! But since these features are very new, we've packaged it into a separate package: 'krita-wraparound-wip', so that everyone could rollback to a "stable" 'krita-testing' package. During installation the system will suggest you to replace the existing 'krita-testing' package.

sudo apt-get install krita-wraparound-wip

And as usual, if you find any bug of have any comment, do not hesitate to tell us about it! :)

Saturday, August 10, 2013

Krita Lime (2.8prealpha). New features overview

Hi, all!

Some time have passed since I was talking about new features of the current development version of Krita. But there are lots of them actually! Let me show them to you :)

(all these feature are already available in Krita Lime PPA, which has packages for Precise, Quantal and Raring)

Optimized selections engine

  • all the selection tools now work incomparably faster. After pressing Ctrl+A you don't have time to drink your coffee anymore ;)
  • Pixel and Vector selections are now convertible! (Yes, we always had Vector Selections!) You can convert your selection to a vector object and edit it moving the vertices as you do for any vector shape. To convert it, just use Selection->Convert To Vector Selection menu. When you are done with editing vectors, you can just start painting on selection and it will be converted back into a pixel one

Optimized painting of the gradients

  • Gradients are now painted a couple of times faster! Thanks Camilla Boemann for this work!

Updated line smoothing algorithms

  • both Basic and Weighted Smoothing algorithms were almost rewritten. This solved many interesting bugs which caused Krita to produce "screwed" lines while painting on high speeds
  • Weighted Smoothing algorithm now has an option for controlling the ending of the stroke. It makes the line "hurry up" to the brush tip when you lift the stylus up. The speed of this "hurrying up" can be controlled by "Stroke Ending" option
  • Weighted Smoothing can now also smooth the pressure of the pen

Refactored predefined brushes engine

  • The speed of the painting with predefined brushes raised up to 20%
  • Fixed blurriness of the predefined brushes on all the scales
  • Rotation of a predefined brush now produce no artifacts!
  • Colored predefined brushes now rendered correctly (without gray traces left on the canvas)

Updated Brush Sensors engine

  • Anisotropic Spacing Feature. Now the spacing can be configured to be related to the ratio of the brush
  • Fixed Speed and Distance sensors to work in a sane way ;)
  • Refactored Drawing Angle sensor, so that it became much smoother
  • Implemented Fan Corners feature. It can be activated in the Drawing Angle configuration dialog. It ensures, that there will be no breakups in the stroke in the corners of the line. It works like a spacing option, but only for angular values.

  • Now when the canvas is mirrored, the dab stays non-mirrored! So you can continue painting with your brush unchanged!

Monday, May 13, 2013

Krita Lime PPA: always fresh versions for Ubuntu users!

A great piece of news for Ubuntu Krita users is coming today! We have just opened a repository with regular builds of Krita git master!


The main purpose of this PPA is to provide everyone with an always fresh version of Krita, without the need to update the whole system. Now one can get all the latest Krita features without a delay.

At the moment git master version has at least three features, which are absent in Krita 2.7 Beta1 (and cannot be merged there due to code freeze):

  • New "New Image From Clipboard" dialog with a nice preview widget implemented by our new contributor MatjaĆŸ Rous
  • New "pseudo-infinite" canvas feature (read here) for dynamical image resizing
  • New "Overview Docker" which lets you see the whole image at a glance
To install the newest Krita you need to do a few steps:
  1. Check that you don't have any original calligra or krita packages provided by your distribution or project-neon (we don't check that automatically currently)
  2. Add the PPA to repositories list:
    sudo add-apt-repository ppa:dimula73/krita
  3. Update the cache: 
    sudo apt-get update 
  4. Install Krita: 
    sudo sudo apt-get install krita-testing krita-testing-dbg 
Update: (not needed anymore)
After installing this package you should restart X-server to get environment variables updated!

Of course, being based on git-master may sometimes result in a bit of instability, so make sure you report any problems so we can fix them! :)

Wednesday, May 8, 2013

Krita 2.8 (prealpha): New "pseudo-infinite" canvas feature

— "Darn it! Again no space on my canvas for the feet! What now?"

Does this sound familiar to you? Does going to the canvas resize dialog break your workflow? Don't be frustrated anymore! Now you can just scroll down, click and... Presto! Add those happy feet to your drawing!

Now if you scroll the image behind the edge a wide button appears which you can use to expand your image up to the size of your screen!

A short example:

Upcoming Krita 2.7: Updated Drag & Drop and Clipboard functionality

Recently we spent some time on polishing the Drag & Drop and Copy & Paste functionality in Krita. It turned out that these simple things are very important for users, since they allow integrate Krita into user's workflow better. It's a pity we were not able to pay much attention to them for some time, so as time passed they became a bit buggy. Now the bugs are gone and I can say for sure that there is no bugs in these systems! (at least bugzilla and me don't know any :)

Here is a short list of capabilities you can use to integrate Krita into your workflow (will be publicly available starting from Krita 2.7 Beta 2):

  1. Clipboard. Now the pasted image always gets centered right. And thank to the patch by our new contributor Sahil Nagpal the Custom Image dialog doesn't go insane when finds something in the Clipboard :)
  2. Drag-and-Drop of Image-objects. You can drop any image (from Gimp or Chromium) to Krita canvas and it will be centered in the image. If you want it to be centered around the mouse position, just press Shift key while dragging. You can also drop an image directly into the Layers docker, which will allow you to choose the position of a newly created layer in the stack.
  3. Drag-and-Drop of a URL. If you drop an image from Firefox (yes, Firefox doesn't wrap images into image objects) or from Dolphin, it will also be added to your image as a layer.
  4. Drag-and-Drop of many images at once. Not many people know about this feature, but Krita will also handle this case =)
  5. And of course, Drag-and-Drop of layers between different instances of Krita app. This feature was a tough one because of some bug in Qt's QTreeView implementation of D&D. It was always generating some spurious MouseMove events which were canceling the incoming drop. But now this finally works.
Enrico Guarnieri's beautiful 
splash screen for Krita 2.7

Thursday, March 21, 2013

New User Interface for Krita Color To Alpha filter

Hi, all!

The comments of the artists about my previous change to the Color To Alpha filter showed that many of them really need it in their daily work! But most of them agreed that the user interface of the filter was still "not good enough" for many of the use cases: you simply couldn't select the exact color which should be made transparent! So now the problem is gone and you have various ways of doing this:

Firstly, when you apply a filter directly to the layer with the Filters->Colors->Color To Alpha... menu item, you can just pick the desired color from the image below the dialog! You should also note that while doing this, you can change the options of the color picking tool in the Tool Options docker, like select the Radius used for calculating the average value or to choose whether to pick from the original layer pixels or from the resulting composed image.

Secondly, you can use the standard KDE Color Dialog where you can select the precise RGB values of the color to remove.

And lastly, you can use the Color Picking Tool provided by the KDE Color Dialog. The advantage of this tool is that you can pick a pixel not from Krita only, but from the entire monitor screen!

Just to show you what is now possible with the filter I took a picture that was filmed for some action film... and made it a bit more peaceful :)

The changes are going to be merged into Krita-master (aka Krita-2.7pre-alpha) in a day or two, since it needs to go through a short review process. If you want to test it right now, you can get the updated version from 'krita-testing-kazakov' branch!

Friday, March 15, 2013

Updated Krita ColorToAlpha filter

Hey! We've just updated our Color to Alpha filter, so it can now be easily used for removing background from scanned sketches! Our algorithm differs from the one used in Gimp: we use CIE deltaE [0] function to calculate the difference between the image and the base color, so it is more flexible and configurable. You can choose to what extent you want to remove the background by changing threshold value.

(original painting by David Revoy)

The filter's algorithm is actually quite simple:

1) Firstly, we calculate the difference between the image pixel and the base color and decrease the pixel's opacity according this difference. The less the difference, the more opacity is decreased. As I already said we use deltaE function to calculate this difference.

2) Secondly, we apply an inverse "composite over" to every pixel. Due to that step, if we put a layer filled with a base color below the filtered image, we will get original image!

[0] -