Want to See Krita Improve... FAST?
The next release of Krita (2.2) has a once-ever opportunity...
We have a vision to bring you a great tool for creating art, either from scratch or scans on very large high-bit depth, multi-layered canvases using large and complex brushes. In the next couple of months we have a unique opportunity to make it happen... But we need your help today (no coding needed)!
Click here to learn more...
Krita - Open Source, Free Imaging Software
|
Monday, 01 February 2010 19:23 |
|
Last week was hugely exciting for us developers, because Lukáš, having finished the last of his exams, could get started on our action plan! Lukáš first week was very, very intensive. His poor laptop hardly managed to keep up with the production of callgrind output, so we had to distribute that task a bit. What he did was in the first place, using QTestLib's new benchmarking feature, write a bunch of performance tests for common things like composing two images, fetching and writing pixels, painting strokes. Then he ran these benchmarks under callgrind, so he could see where the hotspots were.
The good news: there are plenty of places where we can optimize so Krita will get a lot faster. The bad news: there's a lot of work to do! You can read all about Lukáš ' work in his weekly blog and in the report on our wiki. Today, Lukáš spent most of his time investigating Krita's brush rendering code. During an animated discussion with Øyvind Kolås (aka Pippin), Dmitry, Cyrille and me, we formulated an approach that might combine flexibility, performance and low memory consumption for Krita's autobrush feature. Maybe we'll see the first commits tomorrow!
Even better: Thomas Thym showed that Krita is gaining a userbase: 
Yay for budding artists everywhere!
Code
Again, lots of commits: 96. And that doesn't count the work in pigment or KOffice. The bug count is creeping up again, to 90...
Adrian Page made sure Krita's png filter also works with libpng 1.4, did a bit of make-it-compile-on-windows work, and then on Saturday settled down to unify as far as possible Krita's two canvases: the opengl and qpainter canvas. Lots of duplicated code removed, and even better: the start of work to fix Bug 148207: Pixel Pencil lines are messy.
Boudewijn helped Lukáš here and there with the benchmarking code, but =because he switched jobs, didn't do much coding, except for some token work on the mixer canvas. Cyrille promptly fixed a bug in there!
Cyrille Berger was going strong: trying to figure out how much of a perfomance hit Krita would suffer if we using a 0 - 1.0 scale for opacity instead of 0-255. Turns out that currently, that's a bit much, but there now is nice api in pigment to use opacity with the extra precision. He then added a grayscale 32 bits float/channel colorspace and set out to achieve a hugely important milestone: we can now load a multilayer .exr file, with different colorspaces for different layers, and save it in a .kra file without losing any information! Cyrille was elated enough that he decided to go and do some painting in Krita instead of implementing the .exr export right away.
Having refreshed his mind by creating a spot of art, Cyrille went on (I'm giving him two paragraphs, since his work won't fit in one) to improve our curve handling code, fix replaying of the spray brush in the recorder, add a build mode that makes it possible to both have debug messages and optimized code, fixed some bugs in the metadata handling, fixing the saving of XMP, made it possible to store non-icc color profiles in .kra files, fixed loading layers that have a different colorspace than the image, updated the collection of shiva filters and generators, and started to really hunt for memory leaks. Krita now has a built-in memory leak detector.
Edward Apap cleaned up the user interface of brush engine settings tabs and then set out to replace the convolution code with an FFTW-based approach. We've seen no code yet, except when he posted a snippet to the #krita irc channel... FFTW-based convolution should be much faster than the current approach.
Sven Langkamp fixed a crash in the sumi-e brush engine, helped Lukáš with some benchmarking code and optimized the startup of Krita a bit more.
Finally, Vera Lukman integrated her recent color palette with the color selection system of Krita, which means it really works now. This sparked an interesting discussion on the mailing list on what kinds of color selection mechanism would be useful in the palette. I am sure we will be discussing that a lot in Deventer, in three weeks! |
|
Monday, 25 January 2010 22:11 |
|
Last week in Krita -- week 3
Week 3 finally saw a drop in the number of bugs: we're at 86 now. And apart from all the work done on the KOffice libraries -- and every improvement there is an improvement in Krita, and despite many hackers being busy with exams or papers, we managed a grand total of 130 commits, making it hard to keep up. And the 2.2 feature plan shows a marked increase in green! And we have also started on a feature plan for 2.3.
Code
Cyrille Berger fixed more bugs in our handling of metadata, especially ISO values. Following refactoring of pigmentcms, Cyrille fixed bugs in loading .kra files.
Cyrille also refactored the memory management of colorspace plugins.
A feature that was first implemented in 2007 and broken (by Boudewijn) in 2008 was once again reinstated: thanks to Sven's work on the brush presets, Cyrille could fix stroke recording and make it possible to edit recorded strokes, making possible, for instance, to change the brush preset used when painting the recorded stroke. The way Krita stored data for response curves, for instance for pressure sensitivity was inefficient, so Cyrille created a better, more generic way of handling this data.
Lukáš Tvrdý found the time, next to his last exam, to port a number of his brush engines to the new preset-support architecture. Additionally, he finished work on his particle brush engine, but didn't quite get round to committing it.
Boudewijn Rempt, following Dmitry's suggestions improved some caching mechanisms in our paint device code. Boudewijn changed Krita's opengl-based canvas implementation to use GL_RGBA16 whereever possible. People using one of the new wide gamut monitors (that might have up to 12 bit/channel display panels) should now be able to actually see the difference between 8 and 16 bit/channel colorspaces. Also, since OpenGL is still a tricky business, what with proprietary, closed source drivers causing no end of trouble on Linux, Boudewijn made sure that if enabling OpenGL causes a crash, Krita will revert to the Arthur canvas next time krita is started. As promised last week, there was also some inconclusive work on the psd filter and the mixer canvas, but it looks likely that by the end of week 4, mixing will once again be possible. Boudewijn fixed a bug in the OpenRaster saving code. On a related note: Jon Nordby, a MyPaint developer, managed to get OpenRaster support into Gimp's mainline!
Edward Apap started tackling the perspective transformation tool. This has bitrotted to a large extent, so the renewed attention is very welcome. This led to an interesting discusson on #krita about transformation tools: ideally, we'd have one tool, with a good interpolation strategy that can warp and deform images with much more freedom than the current two transformation tools can provide. Edward also fixed the blur filters so they work with filter layers, cleaned up the selections menu, fixed a crash in the brush preview, implement variable radius selection feathering made it possible to configure whether you want your curves antialiased or not and fixed the settings page for color management as well as a cleanup of the other settings pages. Oh, and he added aspect locking for the grid configuration.
Sven Langkamp made it possible to actually select presets. There are a few more small steps needed, but soon I will upon adventurous artists to start working on a preset sets we for our brush engines we can ship with 2.2!
Patrick Spendrin cleaned up after us and made Krita compile on Windows again.
Dmitry Kazakov posted the next version of his composition update patch: this patch fixes bugs when using filter layers. It is still experimental, so he just presented a patch for everyone to test, and a couple of problems were discovered and fixed. I expect his patch to be committed this week, after he has done his last exam.
Lukáš gets started!
That's it for last week: this week will see Lukáš' first week of working on Krita full-time, made by the more than 160 generous sponsors! We had a kick-off meeting on Sunday afternoon, and created a benchmarking structure, as noted above. The first day is over now, when I'm writing this, so I can already say that we now have benchmark tests in place for the tiles backend, the pixel access functions and a roundtrip test: loading, rendering and saving a big multilayer document. Let's see what conclusions we can draw from that -- and expect a big update by the end of the week. |
|
Wednesday, 20 January 2010 08:05 |
|
Last week in Krita -- week 2
I am not sure -- last week felt like a quiet week in which nothing much happened. But the numbers show otherwise: the Krita team made about 95 commits. And our testers have been busy as well, so we are now over 90 bugs. Eek! Soft feature freeze has hit, which was accompanied by a frenzied adding of todo's to the 2.2 feature list. After the Big Freeze, the Big Thaw has set in in the Netherlands, showing that once again, coding and weather are not synchronized.
Code
Sven Langkamp improved startup time of Krita by optimizing the code for loading gimp-style brushes, fixed the full-screen shortcut as well as the show/hide dockers shortcut. Sven also made it possible to save presets by name and have them restored by name, as well as fixing bug in a race condition on startup caused by presets trying to access a gimp-type brush resource before that resource was loaded. Krita loads all its resources in threads on startup, so we can present a usable application as quickly as possible. This design dates back to the days when Patrick Julien was maintainer, and we've kept faithful to it. Sven also fixed the painting of the brush outline cursor. This is not the definitive solution, however, there is still some ugliness in the code that's irksome to the developers, but for the user, there won't be much of a visible change. Still, we like to run a clean ship!
As an example of that cleanliness, Adam Celarek continued cleaning up tool code. He removed some constructs that had seemed a good idea in 2004, but that never were used! He also made the tools behave better, so the Escape key now ends a polygonal selection.
Lukáš Tvrdý added a "flow" option to the new soft brush brush engine. This is not to be confused with Photoshop's flow slider, having something like that is still a todo for 2.2. Lukáš also started porting his brush engines to Sven's refactored preset code. Tomorrow, that's Wednesday, Lukáš will have is last exam and barring having to redo one or two (which nobody expects!), he can get started on the Action Plan after a bit of rest and recreation.
Vera Lukman cleaned up code related to the brush & color palette, making sure memory is freed. Vera has started an internship, but her boss has okay her visit to the Netherlands, so she'll be at the Krita sprint for sure!
Adrian Page continued updating Krita's plugins (of which there are many -- most Krita functionality is implemented in a plugin) to KDE 4 standards, removing obsolete constructions that were outputting user-visible warnings on Krita startup.
Boudewijn Rempt did some work on the mixer canvas: this is a big feature and most of it had to be rewritten after the code had bitrotted since Emanuele Tamponi became to busy with university to work on Krita. Expect more inconcusive "did some work on the mixer canvas" messages in the weeks to come! Boudewijn also 'finished' the gif import and export filter. Now on the topic of the gif filter, here's a big, fat warning. Krita is an application for painting and working with true color images. It only supports true color, ranging from 8 bit/channel to 32 bit/channel.
Krita is not a pixel-precise, indexed-color based smiley or icon creation application. If you want to save your work as a gif file, you have most certainly chosen the wrong application to work with. Still, the code is there now, and any one looking to improve it can get started with the Gif filter junior jobs. Boudewijn also implemented some caching mechanisms that improved performance when showing thumbnails in the layer box, using selections or painting.
Cyrille Berger did some work on painting assistants. These are plugins that "guide" in an artistically fuzzy way your freehand painting. The line tool gives you a perfectly straight line (unless you use the curve brush), the line assistant makes the line look more hand-drawn. Then Cyrille started working on a refactoring of the pigment library, which culminated this week with the fixing of a crash on exit, as well as the caching of colorspace objects. This should help a lot with memory consumption and with performance, but we need to measure. Building on Sven's work, Cyrille also fixed the recording of paint strokes which I broke a long time ago. Spurred on by a question on the forum, Cyrille fixed the reading of ISO settings in the bracketing-to-hdr plugin, fixed a crash when using the color curve filter on 16 bit rgba images, and fixed a number of issues in our support of metadata. Cyrille also did lots of work on OpenGTL.
On Sunday (which, since I tend to write these articles on Monday or Tuesday, I take for the last day of the coding week) Dmitry Kazakov posted the latest version of his proposed refactoring of the way Krita combines layers into one result image. This refactoring is needed because we still have some errors in the handling of our adjustment layers and because of threading issues. The patch is complex and needs careful testing, fortunately Dmitry has added plenty of unittests.
Marc Pegon's patch that fixed drag-and-drop from Firefox into Krita was committed, so Marc has earned his place in the about box. Marc is currently investigating weirdnesses in the local selection mask mechanism, sleuthing away through Krita's code base.

Krita showing off a loaded animated gif (don't save it!), the new layout of the option panel for selection tools and the new layout for the mixer (which doesn't work yet).
T-shirts!
It's not a commit... But Kubuntiac continued designing optimized versions of the t-shirt design for black t-shirts, and aMan presented his own design. The final design needn't be ready until mid-Februrary, Irina Rempt discovered when investigating t-shirt printing possibilities. So there's plenty of time to get out your favourite graphics app and do a design! As a side-note: the t-shirts won't be paid for by the Krita project, instead, every cent we have received (and we are still receiving donations!), will be used to further development. Given the fixed costs, we will likely print a run of 15 or so. One thing I'm thinking about is setting up a little webshop to sell things like mugs, t-shirts and Krita branded Cintiq tablets with packaged copies of Krita.
That all for now -- if you have comments, go to to our forums and discuss! |
|
|
Monday, 11 January 2010 21:09 |
|
Wheee! Week 1! This week turned out to be a sort of flying start of 2010 for Krita, with lots happening in the source, preparations being made for the February sprint and some work on the manual being done.
Code
There have been about 70 commits this week, which is kind of a record.
The week started with Cyrille Berger starting work on a new OpenEXR import/export plugin. OpenEXR is kind of a complex library, and the previous import/export plugin was using API's that made it impossible to handle multi-layer OpenEXR images. The new plugin has been designed from the start to do just that. While working on this plugin, Cyrille noticed that we are having some problems with memory consumption. This was partly caused by OpenGTL leaking memory, so Cyrille committed lots of fixes in that library as well. We're still not done, though: Dmitry is looking into some leakage problems in the tiles engine, and LLVM is still using way too much memory. Cyrille also fixed a number of crashes in the bracketing-to-hdr feature.
Boudewijn Rempt finished the import side of the new gif filter. Actually, I'm not sure whether Krita ever could load gifs -- I think the old GraphicsMagick-based filter only provided export for gif. Boudewijn is now working on making export to gif work again -- but it is a bit of a why-bother thing. Krita simply doesn't support and won't ever (probably...) support indexed images, so Krita will never be the tool of choice for creating animated smileys. But it's not much code, since we can follow the lead of Shawn Rutledge's read/write qimgio gif plugin. This code adds a new dependecy to Krita, namely giflib. Boudewijn also did some work on the Photoshop filter, but there's nothing finished there yet, and he implemented a unittest that shows that the mypaint-compatible brush engine is beginning to come together. (I still need to find a voice here... First person, third person...)
Adrian Page fixed a lot of problems with OpenGL on Windows. Krita now uses the OpenGL 2.0 core API for our shaders. Kai-uwe Behrmann started a discussion on the mailing list about why Krita doesn't use the full capabilities of the 30-bit displays that are becoming available. Boudewijn provided a first patch to make that work, which was reviewed by Adrian and needs more work. It looks like it will be possible, but it might cause OpenGL to take some slow paths: there's some more work to be done here. Adrian also did some much-needed janitorial work removing deprecated constructs from almost all Krita plugins.
Marc Pegon joined us on #krita and started working on a very annoying bug: drag and drop of images from konqueror would work, but if you tried to drag an image from Firefox, nothing would happen. Marc sleuthed his way through the code and managed to produce his first patch just in time for inclusion in this weeks' Last Week in Krita. It'll be committed today. Welcome to the team, Marc!
Adam Celarek came back from his holiday in Tyrol and committed a big cleanup of the selection tools. The selection and paint tools now share the same common behaviour and the settings for the selection tools are represented by nice new icons created by Enkithan. Note that the shortcut for hiding the dockers is now ctrl-h, not Escape, since Adam discovered that setting the shortcut to Escape hid the most obvious way to close a patch in the polygon tools.
Lukáš Tvrdý was busy with his exams, but still managed to commit a new brush engine, the Soft Brush, which gives a very nice cloudy and almost-wet effect when using the right settings.
Those brush settings... There are so many now that it might be easier to write your own brush engine than to discover the best settings for some engines. We've long wanted to introduce the concept of presets, so you can save and load particular settings for particular brush engines. Well, Sven Langkamp is this weeks hero because he started working on that and came a long way towards this goal. He cleaned out reams of duplicate code in the brush engines to begin with and then continued to make saving and loading of presets work. There is still a lot to do, but the progress is enormous.

Manual
A quality application needs a quality manual. Krita 1.6 had a pretty good manual, one that went beyond the usual listings of menu items and dialog screens. Unfortunately, Krita 2 is really and thoroughly a different application from 1.6: we might be able to salvage a paragraph here and there, but that's it. So I've started a new manual on Userbase, which is the current place for application documentation. And since userbase is a wiki, anyone can grab a chapter and write a few lines! The goal with this manual is once again to produce a useful manual that teaches people how to use Krita. Please go through the table of contents! We also want to integrate video tutorials in this manual, for instance by hosting the videos on vimeo or something like that, and embedding them in the manual.
I hardly dare to say this... But I really expect that by this time next year the first books about Krita will start being written.
Bugs
Erm... We're at 87 bugs at the time of writing, despite a good number being closed this week. And our unittests aren't too hot either... And, as said above, we have to watch our memory consumption a bit. But that's par for course in this stage of development: everyone is rushing to get the promised features (check it out, the plan has got colors now) in before the soft freeze hits us. (Which is a weird thing to say, since it's been a hard freeze all over Europe for weeks now!)
Sprint
Well, the sprint is coming closer and closer. I've booked accomodation now, since there's no way I can fit all the attendants in my house -- and for the vision session, we even might have to find an alternative to the kitchen table!
And since a good sprint is a sprint with a t-shirt, I've made a call for designs. Our webmaster Kubuntiac has replied with a very cool design, but the issue is still wide open, of course, and no artist should feel prevented from joining in the fray! Just a note: black t-shirts seem favoured by most hackers...
That all for now -- if you have comments, hie yourself to our forums> and discuss! |
|
Sunday, 03 January 2010 12:30 |
|
I have missed the last two weeks of "Last Week in Krita", but to make up, here's "Last Year in Krita". Trying to remember January 2009 is quite hard!
To begin with, there hadn't been a release since Krita 1.6.3 in June 2007. In 2009, both Krita 2.0 (let's call it a line in the sand for us developers) were released, as well as Krita 2.1 'the almost stable'.
In January 2009, there were four developers working regularly on Krita -- but in December 2009 we saw ten developers actively working on Krita, some of them completely new to the project, like Adam Celarek, Vera Lukman, Edward Apap or Dmitry Kazakov and some of them old hands who have recentely started working on Krita again like Casper Boemann and Adrian Page. Dmitry Kazakov was the 2009 Krita Google Summer of Code student and Vera Lukman the 2009 Krita Season of KDE student. Both have delivered excellent work, and more importantly: are still active developers.
In January, we didn't have a website, in December our website is almost taking over from koffice.org/krita as the starting point in Google searches. Yay for Kubuntiac, our webdesigner, webmaster and all-round forum activist! Congratulations also with the birth of his first daughter on Boxing Day! And let's also congratulate Cyrille Berger, who got his Phd near the end of 2009.
In January, We didn't have web forums, which are a preferred way of communication for many users: thanks to Lukáš Tvrdý and KDE forum admin Neverendingo, we've got our forums now, with a nice gallery, as well.
And in January, my own feeling was that we did not really have any clear direction. We started porting Krita to Qt 4 and KDE 4 in 2006, and three years is a long time. In the meantime, projects like MyPaint had started to come into their own, and Gimp has started integrating gegl and set huge strides towards usability. Was there are a niche left for Krita? But during 2009, we regained our focus and our direction. Both the excellent usecases written up by Enkithan and Lukáš Tvrdý's interest in making Krita useful for Blender led us to define a clear action plan. When I am writing this article next year, we want to be able to say that Krita is suitable for everyday usage, without any 'ehms' and 'yeah, buts' -- no apologies should be necessary.
To achieve that, we started a fund raiser campaign on pledgie. Our target was €3000 and we thought we'd need three months to get there -- it turned out to be three days. Thanks to the more than 170 sponsors, we are now at over €4500! We'll spend every cent of it on Krita development, and when we've spent all of it, I'll account for it on krita.org.
Now, on the cusp of 2010, Krita has 84 bugs reported against it, and 111 wishes. That's a far goal from my 2.2 release target of having only 20 bugs and no known crash bugs, but I'm happy with all those reports, because entering a report in bugs.kde.org is quite tiresome, and shows real dedication from our users and a real desire to help out. And we're returning the honor: we have fixed 211 bugs in 2009. I'm sure the number of fixed bugs will be higher in 2010!
It's almost impossible to enumerate the improvements that went into Krita in 2009. At a rough count, there have been 1850 commits to Krita alone in 2009, a number which excludes all the work that went into the KOffice libraries and plugins that form the base for Krita and extend Krita with functionality like the text shape. It is very hard for developers like us to actually look back on the work done, we are always focussing on the next issue. I can tell you that when the KOffice team assembled in Oslo right after the 2.1 release, there was no partying, no celebratory mood -- we seemed to have forgotten already about that achievement and were all gung-ho to go on to 2.2!
Highlights were of course the Summer of Code work by Lukáš Tvrdý and Dmitry Kazakov, who worked on new 3d brush visualization and canvas improvements and a new tile engine and mipmapping for the QPainter-based canvas, respectively. Vera Lukman's quick brush and color selection palette was developed as part of the Season of KDE and will help a lot in making Krita more usable for creative artists. We removed the troublesome dependency on GraphicsMagick -- Krita was originally designed to be just a gui layer over the ImageMagick library! -- and we started implementing our own xcf, ppm, gif and psd filters. Lukáš managed to convince his university that he could develop brush engines for his thesis, which has resulted in fun and useful brush engines like the deform, spray or the grid brush. But all parts of Krita have been continuously improved during 2009, and we ended up with a sort of a December sprint, with Adam Celarek improving the gui and the code sharing of the selection tools, Edward Apap has worked on making the convolution filters (like Gaussian blur) much faster, Sven Langkamp has started the long-awaited work to make it possible to load and save brush settings as presets, Casper Boemann has redone the image resize dialog based on Ellen's usability suggestions -- by now, Krita 2.1 feels so old!

One area where I suspect we will continue to lag are documentation -- we had a pretty good manual, but it was completely outdated so I had to remove it. We'll have to find a volunteer to write/record tutorials once our gui stabilizes -- which we hope to achieve in with the 2.3 release.
So, what's for 2010? There will be a Krita sprint in Deventer, the Netherlands, which will be attended by many Krita developers as well as Peter Sikking, the interaction designer who has helped Gimp's team find their way towards a high state of polish and usability. He will help us develop our vision and hopefully point us towards measures to improve Krita's usability for creative artists. Following that, there will be week long hacking session with part of the Krita team in Deventer. Lukáš Tvrdý will be working on Krita for three months following the action plan. And since our supporters have been so incredibly generous, it is possible for Lukas to work full-time on fixing bugs for at least a month after he finishes school as well. We have planned at least two releases: 2.2 and 2.3. While 2.2 should already contain many performance improvements, 2.3, planned four months after 2.2 according to the KOffice schedule, should be completely usable.
See you on our forums, #krita on irc.freenode.net or on our mailing list -- or the Libre Graphics Meeting in Brussels. |
|
Thursday, 24 December 2009 10:13 |
|
Krita is an application for image creation and image manipulation. We focus on painting, illustration, concept art and other creative work. Still, Krita has many features that are useful for image manipulation, like filter layers or RAW image import. This is a short an incomplete list of the most important features Krita provides. Krita provides an OpenGL based canvas in addition to an unaccelerated canvas. Krita's filters, histogram computation and image recomposion are multi-threaded and make use of multiple cores if available. The effect of filters is previewed on-canvas.
Scripting and recording are works in progress.
File FormatsKrita has support for a variety of file formats. Not all file formats are supported equally well, and for some there is only import, not export. Krita supports metadata for kra, ora, tiff, jpeg and png file formats.
- bmp: export only
- jp2: export, import
- jpeg: export, import
- ora: export, import
- pdf: import only
- png: export, import
- ppm: export, import
- raw: import only (based on dcraw)
- tiff: export, import
- xcf: import only
In preparation are support for gif, psd (only up to Photoshop 7) and eps. Color modelsKrita does not support indexed color models. In general, Krita does not support color models without an alpha channel. Krita supports different channel depths, from 8 bits integer to 32 bits floating point per channel.
- RGB: 8, 16 bits integer, 16, 32 bits floating point
- CMYK: 8, 16 bits integer
- Grayscale: 8, 16 bits integer
- La*b*: 16 bits integer
- YCbCr: 8, 16 bits integer
- XYZ: 16 bits integer, 16, 32 bits floating point
- Painterly colorspaces: colorspaces that represent 3-10 wavelength channels in 16/32 bits floating
Layer typesKrita supports the both layers and masks. Masks are associated with a single layer, while layers are grouped in a hierarchy. - group layer: groups layers toegether in a hierarchy
- paint layer: contains raster image data
- filter layer: non-destructively filters all the layers underneath the filter layer in the current group
- clone layer: puts a duplicate of the original layer in a different place in the layer stack
- vector layer: contains vector data, such as vectors, text or complex objecs such as charts
- transparency mask: mask out parts of the associated layer
- filter mask: non-destructively filter parts of the associated layer
- local selection mask: make parts of the associated layer uneditable without masking those parts out
ToolsThere are several types of tools: vector tools, raster tools, guidance tools, canvas tools and selection tools. Note some types of content are not implement as tools but as "shapes" that can be inserted, for instance richt text, text-on-a-path or geometric shapes.
Vector tools- object manipulation tool
- connection tool
- path tool
- freehand path tool
- pattern tool
- vector shape filter tool
- calligraphy tool
- gradient tool
- zoom tool
- pan tool
Raster Tools- freehand paint
- line
- rectangle
- ellipse
- polygon
- polyline
- start
- stroked path (non-editable)
- dynatool
- fill with pattern or color
color selector gradient
Canvas Tools- crop
- move layer
- transform tool
- distance calculation
Guidance Tools- ruler assistant
- perspective grid
- grid
Selection Tools- rectangle select
- elliptical select
- polygon select
- outline select
- fill select
- select similar colors
- path select
(There is no magnetic outline selection tool at the moment) Brush enginesKrita is different from other applications in that it supports brush engine plugins. These brush engines are used in the pixel tools to stroke your painting. - pixel brush: compatible with Gimp's .gbr and .gih brushes, as well as custom brush tips and text
- duplicate: duplicate pixels from the current or another layer
- deform: deform existing pixels
- dyna: paint with movement strength
- spray: spray pixels or images
- filter: paint with a filter
- sumi-e: model a hairy brush
- airbrush: deposit color at a rate
- smudge: smudge existing pixels
- eraser: erase pixels
- grid: paint a grid of pixels
- mixing: mix colors on the canvas
- curve: random jitter and curving along the stroke
- chalk: model drawing with chalk
- pencil: draw aliased lines
In preparation is a brush engine plugin that is compatible with MyPaint's brush definitions. FiltersKrita provides filters that can be used directly, i.e. destructively on the pixels of a layer, when painting, or dynamically as a filter layer or filter mask. - dodge, burn
- levels
- color adjustment curves
- brightness contrast curves
- desaturate
- invert
- autocontrast
- hsv adjust
- cubism
- pixelize
- raindrops
- oilpaint
- blur, gaussian blur
- color to alpha
- color transfer
- minimize, maximize channel
- top, left, bottom, right, sobel edge detection
- sharpen, mean removal, unsharp mask, gaussian and wavelet noise reducer
- various emboss
- small tiles
- bumpmap
- wave
- random noise
- lens correction
- random pick
- random
- OpenShiva-based filters
There are more filters available in the krita-plugins project.
|
|
|
|
|
<< Start < Prev 1 2 Next > End >>
|
|
Page 1 of 2 |
|
What is Krita?

Krita is a graphics application for everyone who wants to get creative with images. Whether you want to create from scratch or work with existing images, Krita is meant for you, all within an easy to use interface.
Read More...
|
Help Make Krita Even Better! |
|
Every bit you can do to help make Krita better, helps every part of the community... to help you! Krita is free software and is therefore under continuous development. We welcome contributions, whether that is code, documentation, tutorials, or ideas and expertise from artists and users. Join us on #koffice at irc.freenode.net, or on our mailing list. Ideas are developed in our wiki. Krita can only grow through your contributions! |
|
|
Powered by KDE |
|
 KDE is an international technology team that creates Free Software for desktop and portable computing. KDE software is translated into more than 60 languages and is built with ease of use and modern accessibility principles in mind. KDE4's full-featured applications run natively on Linux, BSD, Solaris, Windows and Mac OS X. |
|
|
|