Archive for May, 2007

Kalculus 0.5

28 May, 2007 5 comments

At the end of last week, I have released version 0.5 of Kalculus, my front-end to some mathematical tools.

The new version includes quiet a lot of improvements, notably support for octave and gsl (through the ruby binding), an help browser and the possibility to add comment in the calculation sheet.

For those interesting, you can download it from here.


Faster "Gaussian" Blur and Pyramidal Sharpening

22 May, 2007 3 comments

I have still trouble to feel at ease with KDE4 development, and fill the need to develop against a stable environment, so from time to time I do go back to Krita 1.6 and play with it and fill again my energy bar which I can then spend on Krita2. So last week I did wrote two filters (and I am still working on two others).

Faster Gaussian Blur

Bluring has always been one of the slowest operation in Krita (especially compared to what competitors do), mostly because of my laziness and, also, because for some reason the convolution code in Krita refused to work with non-square kernel (for absolutely no good reason). So, when I wrote the filter, I wrote it as a one pass filter, with one huge kernel, which means that for a bluring of 10 pixels radius, Krita was making 441 memory access and mathematical operations, while with a two pass blur filter, only 42 memory access and mathematical operations are needed, thus reducing the cost by a factor of ten, and the needed computation time as well.

But still we can do better, in fact, I have noticed that the second pass is twice as slow as the first one, which is probably due to fact that the convolution code is optimized for working with scanning line horizontally, while the second pass scan lines vertically.

Pyramidal Sharpening

The pictures made by most of camera isn’t always of the best quality, and they especially often lack of sharpness. It can happen for various reasons, ranging from bad lens, to bad sensors or to bad focus. So, one of the basic feature in picture editing is to increase the sharpness of an image. There are quiet a few techniques for doing this, until recently Krita only included what I call the “classical sharp” (it’s the simplest way of sharpening, it’s a convolution mask, very similar to bluring) and “unsharp mask” (the wikipedia entry describes it better than I will ever be able to). I have started playing with an article which proposed to use a pyramid representation of an image to increase its sharpness.

While the “classical sharp” is clearly the worse of all, it’s quiet unclear to determine which of the other two algorithms give the best results, and it also might depends of the parameters used for each one.

Release of Krita-Plugins 1.6-1

Krita-plugins is now available for downloading here. It includes a slightly improved version of the red-eyer removal tool, and three new filters.

Included new plugins


This filter is useful for people who scan a lot of text, as often the text will not appears well aligned.

It a port from a Karl Chen’s deskew gimp plugin.

Image Complete

“Image Complete” is a filter which attempt to reconstruct a part of the image which doesn’t exist. For instance, in the example bellow, there are some text written in the sky, you just select the text, and then launch the filter, and the text is replaced by a good approximation of what could have been below it:

Line Sampler

LineSampler is a filter which draw lines using the image as a pattern.

Installation instruction

Unpack the tarball, then with konsole go to the uncompress directory, and execute ‘cmake -DCMAKE_INSTALL_PREFIX=somedirectory && make && make install’
Which makes me think that we really need to have a more automated way to install plugins.

Libre Graphics Meeting 2007 : Day 2

At LGM, even if it’s a not a big conference, at some point, you always need to split yourself in two or three.

Designer using Open Source software

The second day started by a talk by two designers coming from Belgium who made the choice to start a design agency which would only free software. Those guys seems to live on a different planet (well maybe there is three planets, one for designer, one for geeks and one for normal people), they show us some of their creation, I was a bit sleepy (and considering the number of people in the room, I guess nearly everybody else was sleeping elsewhere 😉 ), but what stroke me most is that apparently, they have some “creative” session where they try various things, even reverse engineering coca.

Then I meet up with Boudewijn to make the final preparation for our talk.

Inkscape + blender + inkscape + gimp + scribus

Then I went to a talk where Cédric Gemy did a presentation where he shows how to use various open source software, he first used inkscape to prepare a spline that he imported in blender to create a 3D Greek temple, then he used inskape to create a mask for the gimp, and he finished in scribus for creating a leaflet.

Hour of fame of Krita

Then after lunch, it was the presentation of Krita. I am grateful that Boudewijn did most of the talking 🙂 I am not used to do presentation in front of that many people especially in English. But I do think that it want very well, people seemed interested and we got interesting questions.


Right after the Krita talk, I did a presentation about what is OpenRaster (a file format for exchanging multi-layer raster images, I would be delighted to paste the link to the create wiki where the project live, but most of freedesktop is dead currently). My talk got a little bit hijacked by a discussion of whether OpenRaster should or should not support CMYK and full color management.

But I got interesting ideas, notably one from Pablo d’Angelo (of hugin fame) who wondered if OpenRaster could be use as an output from hugin, where hugin would save layers and their transformation, and then you can load the file in Krita or the Gimp to fine tune. And the answer is of course yes.

The last question was an offer by Liam Quin (XML activity leader at w3c) to help me improve the XML schema of OpenRaster, and it is really the kind of contribution I expected to get from this conference.

Then I missed two talks I wanted to assist, but obviously I had to miss one as they were happening at the same time. But, in fact, I missed two to have a private presentation of the node editor in blender which is very interesting because it is something I want to experiment with in Krita.

The work flow for creating panorama by a photograph

Yuval Levy, a photograph who do a lot of panorama creation, still a photoshop user but we talk a little bit how he works and how Krita could help him in his work, especially on retouching High-Dynamic Range images.

Then I went to diner with a bunch of people, including Pablo d’Angelo with who I talk a little bit about panorama creation tools, and what Krita could use from Hugin. And one of the most interesting things will be the interest point and matching, and he cleared my worries about it, as I was concerned that they would use something patent encumbered (like SIFT), but apparently they wont, so for my panorama tool I will wait a little bit and see what they can and will deliver during the Google Summer of Code.

Thanks to Adobe for freeing XMP

I was suggested during last Libre Graphics Meeting edition, that Open Raster should use XMP for it metadata (XMP is the metadata specification that rules them all, exif, iptc… your own metatada specification as well). But until very recently, both the specification and the library were available under a very dubious license which was incompatible with GPL (and with a Open Formats). But Adobe did hear to our complaint, and decided to release under BSD. So, now nothing prevent a wider use in the Open Source world, and that’s really cool.

So thanks to Adobe, and if you want to play with XMP go download it from here.

Libre Graphics Meeting 2007 : Day 1

Lets start this blog entry by the first artwork I did with the upcoming Krita 2:

And I must say, the developement version is really starting to be in a good shape, there are still a lot of annoying bug, but it only crashed once, which for a development version, which is still more than six month away of its release, is quiet amazing.

Then, back to the subject, I must say that this year edition of Libre Graphics Meeting was again a major success, and I am happy that I was able to attend it.

On Wednesday, I left Toulouse to Amsterdam where I joined Boudewijn (first time I met a krita hacker with bones and flesh), and then we arrived in the evening in Canada where we met Nicolas Spalinger from OpenFont. On tuesday, we met some other people from the open source graphics world, and started to prepare our talk.

Archive National du Quebec

The beginning of the Libre Graphics Meeting was about file format, so we started with a possible user, then some talks about the various files format.

The opening talk was from someone of the Archive National du Quebec, I am not quiet sure how it was related to graphism and open source. But the conclusion was something like “we want to use open standard, but, as long as they are not mainstream we can’t use them”. And I think that it is quiet wrong, I think that if they really want open standard, they should use them and promote them, and only offers closed “mainstream” file format as a backup solution for people who use some proprietary application.


The second talk was about OpenDocument, and was done by Louis Suarez-Potts, community manager of In the middle of the presentation, there was a slide that really struck me, the title was a “striked ODF in the world”, and the content was explaining how odf was a synonym of, this would mean that the file format competion between ODF and OOXML would comes to a fight between and MsOffice, and I do really believe that this is doom to failure, except on the price, MsOffice is really a clear winner. On the other hand, at the end of the discution he offered collaboration with various project, so maybe the really wants to change that situation.

And he seems eager to extend ODF outside the scope of businnes file format toward multimedia and graphism format. But I am really not convince that it is a good idea. I have yet to be convinced that OpenRaster (the multi layer bitmap file format) should be part of OpenDocument, the main argument that I have heard is that if I want KWord to be able to use multilayer image, then it’s needed. But I do think that it would be better if KWord save a projection of the layer image with a reference to the OpenRaster file, that would provide a much more sensible way of extending ODF without ODF becoming a monster.


Then came a talk about how cool is SVG, and it is really cool.

OpenUsuability and The Gimp

It’s a study on the Gimp that was started a year ago at the previous LGM, I did assist to their discution about defining users, and now they have gone further, involving a student to a google soc-like project but dedicated to usuability.

There are two things that struck me at that talk, the first one is that adjustement layer are from the nighties, and that Gegl will brings something better. But it’s unclear to me what it will be, and, apparently it was unclear to the Gimp developer I asked about it, I guess that what they propose is that calling a filter, automatically create an adjustement layer, and that to edit the effect you call again the filter again (at least it’s what Pippin does in its presentation about Gegl).

The second things is that in some area, The Gimp might converge with what Krita is, which mean we have been doing a good job so far 🙂 and it shows that we have good ideas. For instance, they suggest to split tools between what shape the tool draw (what we call tool in Krita) and how it affects the layers (what we call paintop). And they also want to remove one of the menu bar, and doing that they show a mockup of how The Gimp could look, and it was really similar to how Krita looks. Except with tabs for multiple image, which we removed about two years ago because users got confused by it.

Then after this talk we went to the cafetaria of the Universtiy to eat the worse meal ever in Canada.

Realistic image from a photo with Inkscape

One of the tango member made a demonstration of using Inkscape to draw realistic images using a photo as a reference. It’s always interesting to see an artist using a graphic application.

Text Layouting

Then I attended a talk of Andreas about text layouting in Scribus. Text layouting is something which look awfully complicated and about which I understand nothing.

The LGM dinner

Then in the evening there was the LGM Gala Dinner, which was the occasion to talk with the various people around here either about free software, or even the difference of politics between France and USA. Then Yuval Levy shows some of the full panorama images he did, which I must say looked really really cool.