Graphics creation on GNU/Linux: nice stuff and big hurdles

Graphics creation on GNU/Linux: nice stuff and big hurdles


A great deal of the web is GNU/Linux based: most of it runs on LAMP servers, and some content is created with great tools such as the GIMP, Inkscape and a fancy notepad (or Vi, or Emacs—don’t start). Pen tablets are recognised and used, you have access to effects plug-ins, you can work on bitmaps or vectors (thanks Mr Pierre Bézier! Your name will remain in history). On the other hand, as soon as you want to have your work printed, it’s another matter.

Creating graphics

The GNU Image Manipulation Program (GIMP)

It doesn’t need to be introduced. The GIMP is the ultimate software for graphics creation in the free software world. It’s so good all over that its toolkit has been adopted to create the Gnome desktop, it has been ported to most platforms able to support a colour screen, it is very often compared with the proprietary champion Adobe Photoshop... Now in version 2.2 (stable) or 2.3 (development), it makes use of top-notch input hardware (it really likes my Wacom Intuos3 tablet at least), provides clever functionalities and tools, and is getting much easier to use due to an increasingly better layout (version 1.x was often a mess to find the right tool, versions 2.x keep getting better).

Basically bitmap based, it is still able to import and generate paths and vector graphics for better resolution on some pieces of work: its layers manager is basically the same as the one used in Photoshop, apart from some nuances (and even then, that may just depend on the version it’s being compared to).

Version 2.3.12 handles ICC colour profiles, in both RGB and CMYK colour space—but there isn’t much you can do with it yet. More on that later.

Inkscape

Still not in its final version (0.44.1 at the time of writing), it is much better at managing vectors than the GIMP is; converting a bitmap into a path is a few clicks away, managing the curves and points is easy, creating contents, curve thickness, filling etc. is pretty well done... And it works on a slightly modified Software Vector Graphics (SVG) file format—meaning that you can actually see the result in the GIMP or in recent Mozilla browsers.

While you can define colours based on CMYK values, it doesn’t yet include the profile in the file, and is still RGB based. Yes, more on that later too.

Scribus

In the proprietary world, most publishers use Quark Xpress to define page layouts—or, sometimes, MS Publisher—but it doesn’t run on POSIX systems (yet). Which left the space open for Scribus, a Postscript-based desktop publishing application. Frankly, it works—pretty well (I must admit not having used it too much yet, I prefer OOo Writer for my simple work).

It can also work with RGB and CMYK colour spaces, and it can manage ICC profiles—but it won’t turn one into the other.

Of colour spaces and continuous headaches

RGB

It stands for Red-Green-Blue (it can sometimes be used to refer to ARGB, which is actually not the same), a way to code colour values on the three primary colours used by our eyes to reconstruct the light spectrum. Mixing red and green for example creates yellow, blue and red give magenta, blue and green give cyan... Because light frequencies cumulate (mixing high red, green and blue values of equal values give gray, none means black, all maxed out means pure white).

Given enough resolution (levels per colour channel), you can recreate most of the colour values. If you add a transparency value to this, you have basically recreated the whole range of perceived colours: it’s usually called an Alpha channel, and all four channels together are called an ARGB colour space. More often than not, each channel is coded on 8 bits (meaning 256 levels) which amounts to 4 billion possible values.

CMYK

Cyan, Magenta, Yellow, blacK are the four basic ink colours used in the printing industry to recreate most photographic content. Mixed on white paper, it allows one to recreate a lot of colours with little hassle—yet it has limitations.

Basically, if you define a printed photo as a series of dots, each would get more or less yellow, blue, magenta, or black ink; a little black and nothing else will appear gray, some yellow and blue, light green, magenta and cyan would make blue or purple (depending on how much magenta you use) and no ink would give... white.

There can be quite a lot of variations with this system, however. And that’s where it gets hard—it is intended to be used on a non luminous media (paper) which makes matching RGB and CMYK quite a hassle.

The price of this system is a lightly moired result on paper (due to all the dots used); when a document has a dominant colour, it may sometimes be much better to add an already mixed ink to the basic colours, so as to get better uniformity. It however adds one more printing pass to the media, thus usually resulting in a 20% printing price increase.

To give you an idea, the Pantone colour range (which covers over a thousand ink colours) when printed on a sampler makes each of those samplers over two thousand bucks apiece! If you get your hands on one (it’s supposed to fit in a big pocket), keep it—even worn down, it’s worth a lot.

Trouble in Paradise

Web pages are displayed on a screen; as such, web graphics are usually RGB based. So are cameras (snapshot or video) and scanners (they project harsh light on paper, making it “luminous”). Since screens are RGB based too, most graphics editing is done in the RGB space, since it requires little to no translation (at worst, a change in channel resolution).

But as soon as you need to print what you’ve painstakingly edited on paper, you’re in for a rough ride.

Basically, since both colour spaces are so different (one rates grayness on equivalent values of red, green and blue, the other rates grayness on the amount of black it puts in, one has an alpha channel, the other doesn’t...), you need translators; in fact, tables that match some values from one colour space to another. No absolute translation can be used (different inks, different papers, different screens), so you usually “glue” a value table to the source and a value table to the output, and ask the software to mix’n’match. Those tables are the ICC profiles I’ve mentioned previously.

RGB covers many colours that CMYK can’t do (bright white etc.), while CMYK does some stuff RGB can only hint at (hued blacks for example).

Desktop printers usually apply filters to whatever is sent their ways; they result in more vivid images, however they usually strip contrast off the result and don’t make use of the full CMYK capabilities—something a serious printing business can’t afford.

What to do then? Well, basically, values that overlap are kept pretty much as is, but non overlapping values are usually in the extremes, and those are over stretched upon translation.

As such, when converting a RGB image for printing, you need to take into account the discrepancies. And, in fact, you usually create your RGB image so as to make use of the translation process to make use of the broadest results range possible. But, if you don’t know about that, your bright green will look flat, the great yellows will turn greenish and the blues will turn purple. Interestingly, the reds are usually the ones that get the least change (probably because your eyes can’t get them very precisely, thus any corruption will go hardly noticed).

A brighter future

Now, the last thing that is missing to turn your GNU/Linux desktop into a free desktop publishing station is a tool to convert RGB to CMYK easily without need for too much juggling. And right now, the fine people of the GIMP are implementing just that; until version 2.2, you could use a plugin (called Separate) to artificially convert your RGB flat file into a 4 layers file where you could work on the colour calibration depending on profiles, but it was awkward and required a lot of finger crossing.

In version 2.3.12, you can now specify your RGB ICC profile, a CMYK ICC profile (download Adobe’s, they are freely available) and do some basic work on CMYK separated layers.

Too bad though, I still don’t know how to save or proof the result before I send it to printing... My colour printer has a crappy driver which doesn’t accept alternate colour profiles.

Now, if anyone has any knowledge on the Pantone colour range values, it would be terrific for the next phase: multi coloured printed media (much more precise than CMYK).

Category: 

Comments

Anonymous visitor's picture
Submitted by Anonymous visitor (not verified) on

Don't forget Krita, which recently replaced GIMP on my desktop. And it also support CMYK among other nice features.

Mitch Meyran's picture

I must admit to not having tried Krita; I'm not using KDE, and installing Krita alone is a bit of a hassle; moreover, it is not available on platforms other than POSIX ones - while the GIMP is.
---
A computer is like air conditioning: it becomes useless when you open windows.

Anonymous visitor's picture
Submitted by Anonymous visitor (not verified) on

I'm not using KDE, and installing Krita alone is a bit of a hassle
Just install KOffice from your package manager, it should pull everything in, shouldn't it?

it is not available on platforms other than POSIX ones
That is a weird reason for not mentioning a tool in an article called "Graphics creation on GNU/Linux".

Mitch Meyran's picture

...but you may want to transfer your in-progress image to another platform (say, a Mac) without going through a translation; thus, having the Gimp allows you to move your image from one platform to another without hassle, while it isn't so with Krita (which may very well handle Gimp images, but it isn't its native format - and we're talking precision work here).
Moreover, Krita is still young in its present incarnation. It may surpass the Gimp one day, sooner than later even, but personally I don't feel comfortable using 'young' software for professional work. When it reaches version 2, I'll very much reconsider it.
Now the tied-with-KDE thing: a distribution will almost always decide to freeze the version of KDE it ships, and Koffice gets the freeze too. Now if I want to update Krita, I have to update Koffice, and probably pieces of KDE along with it - which is far from practical, and leads to recompiles and tarball hell.
On the other hand, I can install an updated Gimp binary on pretty much any system (Linux, BSD, Mac, Win32...) that has a recent gtk+2 toolkit available, without need to touch the rest of the system.

As a side note, since I use Gnome, installing Krita results in over 250 Mb of packages to download just to get it to run. I get Konqueror and all the rest of kdebase with it, of that I could care less.
---
A computer is like air conditioning: it becomes useless when you open windows.

Anonymous visitor's picture
Submitted by Anonymous visitor (not verified) on

Inkscape adds a namespace to the the SVG format, but it is all compliant and whatnot. Most of the things you write about are being addressed in Inkscape's upcoming release.

Mitch Meyran's picture

Well then, as soon as it's out I'll proof-test it; you do realise though that GIMP 2.2 was already supposed to support CMYK (but didn't), so I'll wait for the actual release to say more about this.
Please note that Inkscape got kudos for actually supporting CMYK, but the trick in pre-publishing is to be able to actually calibrate the result - something that is unfortunately quite difficult to do, and pretty much in alpha stage in the Free software world.
---
A computer is like air conditioning: it becomes useless when you open windows.

Anonymous visitor's picture
Submitted by Anonymous visitor (not verified) on

You ommited an important program: Xara!

It is now open-source and it's near release 1.0, which means it's about to match the commercial version in terms of free functionality.

I read that Pantone will be available to Xara Linux in a commercial version. Why only in the commercial version? Well, you could say that Pantone is a proprietary colour technology.

Anyway, just try Xara and you'll be impressed, especially by its speed and rendering quality compared to Inkskape. It also has a far much more appealing user interface then Inkscape. The Inkscape team really needs to put more work in the interface.

Mitch Meyran's picture

It is indeed very interesting and is a professional-grade tool. Last time I looked at it though (it was a few months ago, still), it was far from complete and had some severe stability problems. It probably got better, and I'm eager to test the release 1.0 version.

The Pantone colour range needs licencing and certification, sadly any serious prepress business requires it. Now if a project called, say, Phantome, managed to get VERY close to the Pantone colour range...

---
A computer is like air conditioning: it becomes useless when you open windows.

Anonymous visitor's picture
Submitted by Anonymous visitor (not verified) on

xara extreme is now open source for linux as well. It a svg tool like Inkscape. I like Inkscape MUCH more though. I think it may just be because I'm used to it.

Anonymous visitor's picture
Submitted by Anonymous visitor (not verified) on

I agree.
BUT, I'm searching for a Linux programwith the ease of use SMARTDRAW. QCAD is to complicated to use now and then. That's one of the two reasons for me for needing a dual boot system with Win XP.
I need to draw navigational figures, mainly vectors and some figures like a circle, a trangle and a figure resembling a boat (with and without sails).

The second reason is an online bridgeprogram STEPBRIDGE that does not WANT to function with WINE.

Any suggestions.

Thanks from Belgium

Mitch Meyran's picture

I'm not sure I see your point: SmartDraw is a flow chart creation software (which could be replaced with, say, Kchart and Kformula) which may have more powerful CAD drawing capabilities, which Qcad could supplement.

You need to learn how to separate WHAT you want to do from what a piece of software can do. Remember that most free softwares are modular in design (they come from the desire to scratch someone's particular itch), not monolithic like SmartDraw is, so you may install one piece of software for one particular use:
- Kchart for fast or evolved charts,
- Kformula for math formulas,
- Qcad for CAD drawing,
- The Gimp or Krita for pixel and layer based drawings,
- Xara or Inkscape for vector based drawings...
- OOo or Koffice for office productivity work,
- Scribus for pre-print pagination.

---
A computer is like air conditioning: it becomes useless when you open windows.

Anonymous visitor's picture
Submitted by Anonymous visitor (not verified) on

You just need to insall the module, for whatever reason (perhaps stability) it is not included by default, but it is available...

Mitch Meyran's picture

On versions 2.2 and earlier, I installed the 'separate' plugin. It indeed works, at a very basic level though (I haven't found any other CMYK plugin for the GIMP after quite an extensive search on the Web). Version 2.3 uses a different approach though. Maybe by the time 2.4 is out, we'll have a 'real' CMYK manager in the GIMP...?
---
A computer is like air conditioning: it becomes useless when you open windows.

Anonymous visitor's picture
Submitted by Anonymous visitor (not verified) on

Hi, Meyran thanks!! for sharing your knowledge with us. I am freelance designer. I too want to shift to linux as my primary os for print desginging. I need apps for ad designing and layout designing. In short to replace my Indesign and illustrator.
For layout scribus seems to be best choice. But don't know about its output capabilties. Does it outputs in cmyk format. How is the quality of the output. Does it mactch with of Quark and Indesign.
For ad desiging and creative work i think inkscape is best. But it exports to png only which too is rgb. How will i use for print publishing.
And the most important question i have is : Is any serious print professional using linux. Or i will be the only fool doing so. Is linux cmyk capabilities still not mature enough for cmyk printing.
What apps should i use if i need to work for Print publishing.

Please suggest. Thanking you in anticipation.

Regards
Leo

Mitch Meyran's picture

Right now, if print publishing is your bread n butter, stick with your current platform (probably MacOS). If your use of it is more incidental (one ad design every now and then, or graphically light composing) then I don't think you'd find yourself alone; at least, a lot of Web graphics designers do use Linux.

Check out this guy: Ayo of 73lab (www.73lab.com), for successful ad/print/Web design under Linux.

Under Linux, I know that earlier versions of Photoshop actually work quite well under Crossover Office. Dunno about more recent versions though.
Color (including CMYK) profiles are supported by Linux and X. I know that personally I managed to use Adobe's ICC profiles under several apps. X can be calibrated for R, G and B channels and is provided with a basic calibration tool (but it is always better to calibrate your screen first).
Scribus outputs PostScript format; in short, same as AdobeAcrobat, and it does support CMYK (what it doesn't support is converting RGB to CMYK). Its quality is quoted as being on par with Acrobat's.
Inkscape stores colors as RGB, but gives equivalence in CMYK colors. Presumably, version 0.5 should support embedded color profiles (and CMYK too). It outputs SVG, but exports PNG.
Presumably, you're better off creating your artwork under Inkscape, import the SVG under the Gimp - which will then do a vector rendering to bitmap - and calibrate it using the same source and destination profiles, for better consistency.

---
A computer is like air conditioning: it becomes useless when you open windows.

Author information

Mitch Meyran's picture

Biography

Have you ever fixed a computer with a hammer, glue and a soldering iron? Why not? It's fun!