GNOME Color Manager and initial scanner support

Late last night, after a few hours of intense refactoring (to allow udev based devices, as well as xrandr based devices) we got the initial scanner support working:

Scanner support
Scanner support

This lets us support printers and digital cameras pretty easily too. At the moment we just need to figure out how to make gnome-scan make a scan for us and save it in tiff format, and then we can get the calibration working for all types of scanners. Of course, you need a precision printed reference image, but you can get these pretty cheaply from Wolf Faust.

Then, we need to work with the gnome-scan guys to agree an interface so that gnome-scan knows what profile to use for each device. Either a library or DBus interface (with calls in either direction) are being considered, although I think the session-activated dbus interface is probably going to win. There’s still quite a bit of integration work to make CUPS ICC profile aware, but that’s on the list after scanners are working. After all, you need a calibrated scanner to calibrate the printer. Help is always welcome, so please checkout the code and help find bugs.

Published by

hughsie

Richard has over 10 years of experience developing open source software. He is the maintainer of GNOME Software, PackageKit, GNOME Packagekit, GNOME Power Manager, GNOME Color Manager, colord, and UPower and also contributes to many other projects and opensource standards. Richard has three main areas of interest on the free desktop, color management, package management, and power management. Richard graduated a few years ago from the University of Surrey with a Masters in Electronics Engineering. He now works for Red Hat in the desktop group, and also manages a company selling open source calibration equipment. Richard's outside interests include taking photos and eating good food.

26 thoughts on “GNOME Color Manager and initial scanner support”

  1. Really cool that you seem to add consistent colormanagement to the Linux Desktop in no-time! Can’t wait to see this stuff land in the large distro’s somewhere next year.

  2. Hi,

    As a fellow GNOME user for so many years, I just wanted to say: THANKS for working on bringing Color Management to GNOME, and for doing it in a way that will make life much easier for all :)

    Again, THANKS!

  3. One slightly related question: it seems that you’ve come up with several these kinds of cool gnome apps recently so do you have some template for this GUIs or do you always write them from scratch? I mean that if someone were to write a GNOME app to do thing XYZ is there some basic GUI code available where one could start implementing the actual app specific code having the base GUI bit already available?

    1. Usually, I just copy a project that I know works. For gnome-color-manager I used the gnome-packagekit project, and just stole other bits from gnome-power-manager. Once you’ve created one or two projects from the ground up, another is a piece of cake.

  4. Nice one Hugsie! I’ve been longing for this for years now! Thank you!

    It’s good that Linux is slowly catching up Windows 95 :)

  5. When associating profiles with scanners, you’ll need to allow for multiple profiles to be associated with each scanner for the different modes of scanning, eg reflective media vs transparencies, or even for the types of media – eg different types of positive slide film, or negatives.

    1. Yes, we need different profiles for cameras too, so for instance there might be a “in the lab” profile and an “outside full sunlight” profile. I’m not sure on the interface to make this possible just yet, but I’m aware of the problem as a consideration.

        1. Sure, but be careful of policies. As I’ve found with gnome-power-manager, it’s a usability nightmare to have to go to a control panel, change the mode, do something, go to a control panel, change the mode back. Ideally the application can do the heavy work, and choose a profile for a device based on a per-application preference, or using some sort of metric.

          I also don’t think it’s a very important problem, as 99.999% of people using Linux right now are not aware of what colour management is, let alone calibrated their hardware for the correct colours. I think it’s more important to get 90% of people using colour profiles by default, and then work with the 0.0001% of people that need to do the really advanced stuff.

          But then I’m a GNOME developer, not a KDE developer, so I would say that…

  6. It would be very nice if you also addressed video calibration. The reference software for that is here (sadly, written for the wrong platform). It was created by the French A/V community for the French A/V community (a sizable part of which earns its life selling expensive A/V kit or even calibrating it for people wealthy enough to afford it)

    http://www.homecinema-fr.com/colorimetre/index_en.php

    If you can find someone to translate it to you the tutorial it is very good and explains the steps needed to calibrate a screen or beamer for video (they’re probably more appropriate than photo calibration for most people. Video people know the average screen is not perfect, since it’s much more expensive to get a perfect video screen of suitable size, while photo people tend to assume a perfect computer screen is possible)

    Those guys also designed the only home-made colorimeter argyllcms supports, BTW.

    1. Sure, video calibration (from a colour point of view) isn’t a lot harder than static images. I would expect that if the projector is supported using DVI or HDMI, then things could be calibrated as if it’s a giant screen, if you have the right hardware.

      1. For video getting gamma and grayscale balance right is much more important than just calibrating colours, as videos are viewed from a distance, and rarely in a completely dark room.

        Good video calibration will have you fix a lot more things than static images (and beamers have more controls than the average computer screen)

  7. This is very interesting, will it be possilbe to manually adjust a printers color settings? More specifically, take some yellow out of an HP B9100? At this point that is the only thing that is keeping me having a dual boot…

    1. Or maybe, we could apply a profile to the gegl buffer while scanning to gimp via gnome-scan.

      BTW, is the profile support for scanners expected to work. How are scanners recognized. Leveraging udev will not be enough, as there are networked devices (scanners and printers) as well.

      1. At the moment I’m using the libsane matching rules. I don’t think Linux has any good support for networked scanners right now.

  8. My old laptop from 2004 says when starting gcm-prefs -v

    TI:00:51:00 FI:gcm-clut.c FN:gcm_clut_init,408
    – failed to get setup parameters
    TI:00:51:00 FI:gcm-clut.c FN:gcm_clut_load_from_profile,119
    – no profile to load
    TI:00:51:00 FI:gcm-clut.c FN:gcm_clut_get_array,200
    – falling back to dummy gamma

    Normal? Bug? Just a junk hw?

    1. Continued: Calibrate says:

      TI:01:02:56 FI:gcm-prefs.c FN:gcm_prefs_calibrate_cb,136
      – failed to get brightness: Dim capable hardware not present
      TI:01:02:56 FI:gcm-prefs.c FN:gcm_prefs_calibrate_cb,145
      – failed to set brightness: Dim capable hardware not present
      TI:01:02:57 FI:gcm-calibrate.c FN:gcm_calibrate_get_display,111
      – found LVDS mapped to 1

      and in “Getting default parameters”:

      -v: Error – icoms – set_ser_port: port number out of range!

      1. Sorry for the phenomenal spam :)

        When hitting ok in “Getting default parameters” window with Details open, a lots of stuff is printed but the window is closed automatically nobody knows what happened there.. perhaps if details are show, then allow the user to inspect the output?

  9. Still continuing, the info in “Getting default parameters” is actually printed in a silly manner:

    -v: Error – icoms – set_ser_port: port n
    umber out of range!

    That is, with a line break although the details window is rather big..

Comments are closed.