Feature requests

SwatchBooker 0.7
SwatchBooker Editor
SwatchBooker Batch Convertor
SwatchBooker Batch Convertor


Reads color swatches from:

Reads gradient swatches from:

Reads pattern swatches from:

Gets online color swatches from:


Colors are managed: you can attach a ICC profile to a color.

Supports multiple swatches from the same material.

Swatch informations are localizable.


Colors only. Support for gradients, color schemes, patterns, textures is expected for version 0.8

Drag and drop is possible only in the tree view.

Adobe ASE writing supposes there is not more than 1 group level. Creates corrupted files otherwise...

Opening big palettes may temporarily freeze the editor.


On Debian based distributions, you need the packages python-qt4 (>= 4.6) python-liblcms (>= 1.18) and python-imaging (>= 1.1.7-2).
Ubuntu packages are available by adding ppa:swatchbooker/ppa to your system's Software Sources

For using it on Windows, you'll need to install Python 2.5 (2.6 won't work because there aren't any lcms bindings compiled against Python 2.6), PyQt4 and PIL. Then download LittleCMS. From that package, from bin copy lcms.dll into C:\Windows\System32 and from python copy and _lcms.pyd to C:\Python25\Lib\site-packages.

There aren't any precompiled PyQt4 packages for MacOS X so you have to compile it by yourself...


I tried to use concepts close to "real" world swatch books:


What we use to build our works
In the "real" world: paint, cloth, paper, etc.
In the numeric world: color, gradient, pattern, etc. (definitions)


A small sample of a material
In the "real" world: small patches representative of the material
In the numeric world: small visual representation of the material, usually icons or small rectangles

Swatch Book

An organized ensemble of swatches
In the "real" world: color guides, carpet books, etc.
In the numeric world: color palettes, etc.

SwatchBooker file format (.sbz)

Yet another xml in zip format...

Warning! This is in a developement stage so it will most probably change before version 1.0



<?xml version="1.0" encoding="UTF-8"?>
<SwatchBook version="0.7"
    <dc:type rdf:resource="" />
    <dc:description>Here is an incomplete sample swatch book</dc:description>
    <dc:title>Sample swatch book</dc:title>
    <dc:title xml:lang="fr">Exemple d'échantillonnier</dc:title>
    <dcterms:license rdf:resource="" />

Metadata use the Dublin Core Metadata Element Set, Version 1.1 — most of the fields are localizable — and the license element is from DCMI Metadata Terms.

        <dc:title>Black 10%</dc:title>
      <values model="GRAY">0.1</values>
        <dc:title>Yellow 100%</dc:title>
      <values model="RGB">1.0 1.0 0.0</values>
        <dc:title>Cyan 100%</dc:title>
      <values model="CMYK" space="Fogra27L.icm">1.0 0.0 0.0 0.0</values>
        <dc:description>Pure sRGB red</dc:description>
        <dc:title>Rouge 100%</dc:title>
      <values model="sRGB">1.0 0.0 0.0</values>
    <color usage="spot">
      <values model="Lab">57.17 81.5 73.87</values>
      <extra type="My Code">ABCD</extra>

Swatches are currently limited to colors but I plan to add gradient, patterns, textures and color schemes support.

As one could guess, dc:identifier has to be unique and is mandatory.
There can be several values definitions for each color. They'll be treated in order of appearance.
The space attribute is the name of the icc file sitting in the profiles/ directory in the zip.
The extra element can contain pretty much anything...

Value ranges:
YIQ: Y 0 -> 1 : IQ -0.5 -> 0.5
Lab: L 0 -> 100 : ab -128 -> 127
XYZ: 0 -> ~100

  <book columns="10" rows="10">
    <swatch material="R10" />
    <swatch material="R09" />
    <swatch material="R08" />
    <swatch material="R07" />
    <swatch material="R06" />
    <swatch material="R05" />
    <swatch material="R04" />
    <swatch material="R03" />
    <swatch material="R02" />
    <swatch material="R01" />
    <swatch material="RV10" />
    <swatch material="RV09" />
    <swatch material="RV08" />
    <swatch material="RV07" />
    <swatch material="RV06" />
    <break />
    <swatch material="RV05" />
    <swatch material="RV04" />
    <swatch material="RV03" />
    <swatch material="RV02" />
    <swatch material="RV01" />
    <swatch material="C10" />
    <swatch material="C09" />
    <swatch material="C08" />
    <swatch material="C07" />
    <swatch material="C06" />
    <swatch material="C05" />
    <swatch material="C04" />
    <swatch material="C03" />
    <swatch material="C02" />
    <swatch material="C01" />
        <dc:title>Gray levels</dc:title>
        <dc:title xml:lang="fr">Niveaux de gris</dc:title>
      <swatch material="K10" />
      <swatch material="K09" />
      <swatch material="K08" />
      <swatch material="K07" />
      <swatch material="K06" />
      <swatch material="K05" />
      <swatch material="K04" />
      <swatch material="K03" />
      <swatch material="K02" />
      <swatch material="K01" />
        <dc:title>Spot colors</dc:title>
      <swatch material="col160" />
      <swatch material="col161" />
      <swatch material="col162" />
      <spacer />
      <swatch material="col163" />
      <swatch material="col164" />
      <spacer />
      <swatch material="col165" />
      <swatch material="col166" />

Swatch material attribute refers to the material dc:identifier.
Swatches can be gathered into groups. A swatch can be displayed at multiple places in the book.
Like book columns and rows attributes, spacer and break are for cosmetic use in a grid view.
IMHO the only relevant metadata for colors and groups are title and description (and identifier for all materials).

Alternative icon

by jEsuSdA 8)
SwatchBooker icon preview