old bugs must die

August 15th, 2007

Yesterday I closed a rather longstanding enhancement request for GIMP by completing support for ICC color profiles. And today, thanks to the help of Martin Nordholts and Øyvind Kolås, we are close to closing another bug that existed from the very first days of GIMP development. But have a look yourself. This is a comparison of different versions of GIMP displaying the same image (attached to said bug report) at 33% zoom level:

GIMP displaying an image at 33% zoom level

The patch is not yet completely ready, but the result already looks so good that we just have to get this in for the GIMP 2.4 release.

pimp my gimp

May 27th, 2007

Pimp my GIMP is the title of a talk that Simon Budig is going to give next Friday at LinuxTag in Berlin.

If anyone wants to see this talk, or any of the many other interesting talks at LinuxTag, and needs a ticket, drop me a mail with subject linuxtag at sven at gimp dot org. I still have a bunch of e-tickets to give away to GIMP fanboys and fangirls.

free patterns

March 10th, 2007

Someone in #gimp just came up with a link to some nice patterns which are free for commercial or non-commercial usage and are licensed under a Creative Commons Attribution-ShareAlike 2.5 License.

Zebra Pattern

To use these with GIMP, make sure you download the image pack, not the PS patterns file. Then unpack the JPEG images from the ZIP file into your GIMP patterns directory (~/.gimp-2.2/patterns).

speeding up the transform tools

March 10th, 2007

About two weeks ago Ankh pointed out the slowness of the GIMP transform tools and out of curiosity I had a look at it with sysprof. It turned out that there were some obvious and some not so obvious optimizations possible. Two weeks later we now have a GIMP 2.3.15 development release with some significantly faster transform tools. Here are some timings for the rotate tool operating on a 1400×1050 pixel RGB image:

Rotate 1.2° Rotate -47,0°
2.3.14 2.3.15 2.3.14 2.3.15
none 0.35 s 0.12 s 0.54 s 0.19 s
linear 1.51 s 0.43 s 1.77 s 0.82 s
cubic 2.65 s 1.17 s 3.00 s 2.14 s
lanczos 6.59 s 3.28 s 6.69 s 6.13 s

The numbers should be taken with care as they aren’t averaged over multiple runs. But they should give you an idea of what speedups to expect.

Note that except for some code cleanup, I didn’t touch the interpolation code at all. These speedups were achieved only by changing the way the transform operations access their source and destination pixels. I am sure that further speedups could be achieved. It would probably make sense to use SIMD instructions for the interpolation routines. It should also now be possible to parallelize the transform operations using the PixelProcessor framework in GIMP. That would allow to make better use of multiple processors where available.

hotplug of input devices

February 13th, 2007

For a while already, GIMP has rudimentary support for input devices such as the Griffin PowerMate. Last week, Mitch and me received a parcel from Logitech containing a NuLOOQ navigator USB device. What a nice motivation to improve support for such devices.

So over the weekend I added (optional) HAL support to the Linux Input controller module in GIMP. No more searching in dmesg output to find the name of the device file that the kernel associated with the device. No need to reconfigure the device if it wasn’t plugged in when you started GIMP. Just plug it in, it works.

Well, frankly, you still need to go through a rather tedious configuration process to bind events from the device to actions in GIMP. But this will also improve sooner or later. Perhaps we can collect some decent configurations for common devices and ship them as defaults. Then you could actually just plug in the device and it would work out of the box.

jumping on the d-bus

January 19th, 2007

Yesterday I gave an introduction to D-Bus for my coworkers. Preparing this talk was a good opportunity to finally make myself familiar with the concepts of D-Bus. After work I immidiately started to add D-Bus support to GIMP. This will allow us to finally get rid of the ‘gimp-remote’ utility, at least on the Linux platform.

The patch is attached to bug 52866. Code review and comments are appreciated. I have also written a mail to the developers list that raises some questions. Some of the points mentioned there are already addressed by the revised patch.

transform and crop

December 26th, 2006

A while ago, I tried my luck at this and got stuck somewhere in the implementation. The idea was to have the transform tools optionally crop the result so that no empty areas are being introduced. Typical usage scenario is rotating a photograph that was taken with the camera slightly tilted. After the rotation you need to crop the result to the largest inscribed upright rectangle. Wouldn’t it be nice if that could happen automatically?

For some reason the idea came up again lately. And this time Mukund picked up the problem and solved it. Unfortunately it turned out that I had also lost the patch that integrated this feature into GIMP, makes it available to scripts and plug-ins and adds a GUI for it. And again, Mukund came to the rescue and redid this work. Two days ago this code was committed to the CVS tree. Thanks a lot, Mukund, for this wonderful christmas present.

gimp at 23c3

December 22nd, 2006

Wilber on the 23C3 logo

Just a quick note to remind you that, like every year, there will be a GIMP crowd gathering at the Chaos Communication Congress. I will post more details as soon as we have installed ourselves.

two views on the same image

December 13th, 2006

Did some further adjustments to the GIMP’s image window today. Compared to GIMP 2.2, the changes are subtle. But the UI has definitely become clearer and is even more compact.

GIMP 2.2 GIMP 2.3

The collage shown in the screenshots is the work of Nikolas Tantsoukes.

tiny bits

December 12th, 2006

Managed to get some GIMP hacking done over the weekend. Nothing really important, but some tiny improvements here and here that should help to improve the user experience.

GIMP now does not any longer needlessly save all it’s tool presets on exit. This used to cause 41 files to be written (one for each tool). But hardly any of these files ever changed. So the new code now saves the presets whenever they are changed. Which means, as this is a seldom used feature, in most cases it won’t ever need to save one. This becomes important if you are using GIMP on a memory stick. You don’t want it to rewrite it’s configuration files whenever you use it.

GIMP image window statusbar

I also changed the code that displays the “Image saved to …” message in the image window’s statusbar. Before the change you only got this informational message if you saved without using the file chooser. Now it is being displayed (shortly) no matter how the image is saved.