PaletteWB User Documentation
Copyright © 2022
Table of Contents
- 1. Introduction
- 2. Color palettes and PaletteWB
- 3. Contact and Further Information
- 4. PaletteWB's Graphical User Interface
- A. Supported Palette Types
- B. Formatted String Variables
1. Introduction
PaletteWB is a MS Windows software application for generating, importing, and converting color palettes. Conversion can be performed "in batch" for multiple files. Palettes can be also saved as .gif-files. In addition, PaletteWB can load or generate images, apply a new color map to them, and if wanted, export them as a color cycling .gif-file. The following palette formats are supported for im- and export:
-
GIMP palette (*.gpl);
-
Adobe Photoshop palette (*.aco);
-
Fractint palette (*.map);
-
Microsoft palette (*.pal);
-
A hexadecimal color list (*.hextxt).
The following formats can be exported only, but not read:
-
HTML (as a table) (*.html);
-
CSS color list (*.css);
-
JavaScript list (*.js).
The following methods for generating palettes are implemented:
-
Interpolation between a set of colors;
-
A cosinus-based approach as described in Inigo Quilez' article about palettes.
The following methods for generating images are implemented:
The following methods for manipulating palettes are implemented:
-
adjust Brightness / Contrast;
-
adjust Hue / Saturation / Value;
-
blur the palette;
-
invert index order;
-
shift index order by an offset;
-
sort colors;
-
apply the "Persian Raster" method.
In addition, PaletteWB comes with a built-in palettes database.
This document is the user manual for PaletteWB, version 1.8. It contains information that explains what PaletteWB was designed for and how to use it.
PaletteWB was tried to be designed to please its users. We hope for a feedback on this. Please give us a notice about your experience with PaletteWB using the contact possibilities located at http://www.palettewb.com/. We would also be very lucky to be informed about errors within the application or mistakes in the documentation.
This user documentation is structured as following: Chapter 2 gives an introduction into color palettes and what PaletteWB is. Chapter 3 describes the interaction possibilities using PaletteWB's graphical user interface. The document closes with appendices that list the supported palette types and the available formatting options.
2. Color palettes and PaletteWB
Initially, computer images ("bitmaps") had a limited number of colors. Each pixel was not holding a value for red, green, and blue (RGB) as nowadays, but was rather pointing to a color in a color table. Such image formats, where each pixel points to an entry in a color palette are called indexed images. The color table itself is called "palette", "color map" or "color palette".
As usual, different formats for storing color palettes were developed. PaletteWB's main application is to convert between different formats.
Nowadays, color palettes can be found in .gif-images, which store indexed color images. As known, .gif-images are capable to store animations as well. Generating images by colorcycling - rotating the color map - is the second main application for PaletteWB.
In addition, PaletteWB can generate palettes and can generate as well example images, mainly for testing color cycling.
3. Contact and Further Information
PaletteWB has a web page at http://www.palettewb.com/. You may contact us by writing to info@palettewb.com.
4. PaletteWB's Graphical User Interface
4.1. Overview
The main window is divided into two sections, an image viewer part and a color map viewer part. Additionally, a menu bar and a tool bar exist that allow further interaction. The following image shows this graphical interface, its usage is described in the following.
Figure 4.1. Main PaletteWB window

4.2. Image Viewer
After starting the application or if an image was closed (see "Close Image"), the viewer is empty. As soon as an image was loaded (see "Open Image") or the user has generated an image (see "Image Generation"), the image is displayed within the viewer.
The user can zoom into (see "Zoom In (25%)") the image and out (see "Zoom Out (25%)") of image. You may as well zoom using the mouse wheel. The view can be restored to its original size (see "Normal Size").
4.3. Menu Bar
4.3.1. The "File" Menu
The File menu allows you to load and save images and color palettes from/to different formats. Additionally, a loaded palette can be exported as a gif-image. The File menu contains the following entries:
-
: a window opens which allows you to choose a palette file to load. After selecting the file and clicking "OK" or double-clicking the file within the window, the palette will be loaded and shown in the palette viewer.
-
: If a palette was loaded and modified you can save the changed palette by choosing this item. If the palette was not saved before, a window will be shown where you can select the folder to save the palette into and define the palette's file name. As well, this dialog enables you to select the format under which you want the palette to be saved under.
-
: Choosing this item will show a window where you can select the folder to save the palette into and its name. As well, this dialog enables you to select the format under which you want the palette to be saved.
- : A dialog is opened that allows you to name the file to save and to define the format to use. Afterwards, a further dialog, specific for the selected export format, is opened, see
-
: A window opens which allows you to choose an image file to load. After selecting the file and clicking "OK" or double-clicking the file within the window, the image will be loaded and shown in the image viewer after being computed.
-
: If an image was loaded and modified you can save the changes by choosing this item. If the image was not saved before, a window will be shown where you can select the folder to save the image into and define the image's file name.
-
: Choosing this item will show a window where you can select the folder to save the image into and define the image's file name.
-
: Choosing this item will remove the image from the image viewer. If the image was generated or modified, you will be asked whether you want to save the image before.
-
: Quits the application.
4.3.1.1. Exporting Palettes
Most palette formats are fixed. Yet, when exporting palettes to .css or to .js-files, additional format options can be set. This is also true when generating .gif-images that show the palettes. The individual options are described in the following.
The contents of palettes exported to HTML are currently fixed.
4.3.1.1.1. Exporting Palettes to JSON
When exporting palettes to .js/.json-files the following dialog will be shown.
Figure 4.2. JSON export dialog

You can define the following:
- : the name of the variable under which the palette will be exported; you may either give the name of the variable, or use one of the format strings as shown in
-
: sets the format used to store the palette; when choosing "hex", the palette entries will be saved as hex-triplets (with a '#' appendix), e.g. "#ffff00" for yellow; when choosing "triplet", each palette entry will be stored as an array of the R, G, B value, e.g. [255, 255, 0] for yellow.
4.3.1.1.2. Exporting Palettes to CSS
When exporting palettes to .css-files the following dialog will be shown.
Figure 4.3. CSS export dialog

You can define the following:
-
Format String Variables; please note that the name should include the '%i' field for setting the index of each palette entry;
: defines the CSS-selectors under which the colors will be stored; you may use the format strings as shown in -
: defines the CSS-attribute to set.
4.3.1.1.3. Exporting Palettes to GIF
When exporting palettes as .gif-images the following dialog will be shown.
Figure 4.4. GIF export dialog

You can define the following:
-
: defines the width of a cell (area showing a single color) in pixels;
-
: defines the height of a cell in pixels;
-
: defines the number of columns.
4.3.1.1.4. Exporting Palettes to HTML
The content of a palette exported to HTML is a HTML-table where each cell stores the color of one palette entry. In addition, the HTML export includes the name and the file name of the palette.
4.3.2. The "Image" Menu
Here, you can find items for generating images, converting images to indexed images and for exporting a colorcycling animation
- : Opens a sub-menu where the method to use for image generation can be chosen; see
- : Opens a sub-menu that contains actions for converting the image to indexed colors or to a greyscale image, see
- : Opens a sub-menu that contains actions for transforming images, see
- : Opens a menu that controls how the image shall be exported to a colorcycling gif-image, see
4.3.2.1. Image Generation
Currently, PaletteWB offers two ways to generate an image. They will be described in the following.
4.3.2.1.1. Mandelbrot
When choosing the menu entry "
-> -> " the following dialog will be shown.Figure 4.5. Mandelbrot fractal generation dialog

At the top of the dialog you may find presets you can select from.
The dialog offers additional controls for changing the selected area and setting the size of the image to generate:
-
: position of the center of the shown part of the Mandelbrot area along the x-axis;
-
: position of the center of the shown part of the Mandelbrot area along the y-axis;
-
: the used zoom factor;
-
: the maximum iteration number;
-
: the palette repetition scale;
-
: the width of the image to generate;
-
: the height of the image to generate.
The view is interactive. You can move the shown part when pressing the left mouse button and moving the mouse. You can use the mouse scroll wheel to zoom in/out. You may as well move the shown area with the cursor keys and zoom in/out using the keys '+' and '-', respectively.
Pressing "
" will reset the view to the first preset. Pressing " " generates the defined image, optionally asking whether the previous image shall be saved. " " will close the dialog without generating an image.For further information about Julia sets, see the Wikipedia article about Mandelbrot sets.
4.3.2.1.2. Julia
When choosing the menu entry "
-> -> " the following dialog will be shown.Figure 4.6. Julia fractal generation dialog

At the top of the dialog you may find presets you can select from.
The dialog offers additional controls for changing the selected area and setting the size of the image to generate:
-
: the real part of the investigated z;
-
: the imaginary part of the investigated z;
-
: position of the center of the shown part of the Julia area along the x-axis;
-
: position of the center of the shown part of the Julia area along the y-axis;
-
: the used zoom factor;
-
: the maximum iteration number;
-
: the palette repetition scale;
-
: the width of the image to generate;
-
: the height of the image to generate.
The view is interactive. You can select a new z by pressing the right mouse button within the area, you can as well move the mouse while holding the right button. You can move the shown part when pressing the left mouse button and moving the mouse. You can use the mouse scroll wheel to zoom in/out. You may as well move the shown area with the cursor keys and zoom in/out using the keys '+' and '-', respectively.
Pressing "
" will reset the view to the first preset. Pressing " " generates the defined image, optionally asking whether the previous image shall be saved. " " will close the dialog without generating an image.For further information about Julia sets, see the Wikipedia article about Julia sets.
4.3.2.2. Image Conversion
PaletteWB can convert RGB-images into indexed images for applying color palettes to them.
4.3.2.2.1. To greyscale
The loaded image will be converted into a greyscale image. The brightness of each pixel is set to the average of the pixel's original RGB components. The palette will be set to a greyscale palette.
4.3.2.2.2. To indexed
The loaded image will be quantized and converted into an indexed 8bit-image. The palette will be obtained from the quantized colors of the image.
4.3.2.3. Image Transform
PaletteWB has some basic functionality to perform transformation operations on images.
4.3.2.3.1. Mirror horizontally
Mirrors the image horizontally, i.e. along the x-axis.
4.3.2.3.2. Mirror vertically
Mirrors the image vertically, i.e. along the y-axis.
4.3.2.3.3. Rotate 90° CW
Rotates the image by 90° clockwise.
4.3.2.3.4. Rotate 90° CCW
Rotates the image by 90° counter-clockwise.
4.3.2.4. Export Animation
This option allows to generate gifs animated by colorcycling. It can only be chosen, if an indexed image has been loaded or if a loaded image was converted to an indexed one.
When selected, a window that allows to select a filename to save the animation to is shown. After entering or selecting a valid filename, the following dialog is shown:
Figure 4.7. Animation export dialog

Here, you can define the start and the end indices between which the palette shall be rotated. Additionally, the animation speed stored in the .gif file can be changed.
4.3.3. The "Palette" Menu
The "Palette" menu contains entries for generating palettes, for manipulating them, and for converting palettes in batch.
- : shows the database entries, free palettes to choose from, see
- : opens a sub-menu where a method for generating a new palette can be chosen; see
- : opens a sub-menu where a method for applying a repetition pattern can be chosen; see
- : opens a sub-menu where a method for changing the colors of the palette can be chosen; see
- : opens a sub-menu where a method for changing the order of the palette's colors can be chosen; see
- : opens a dialog which allow to select palettes for batch conversion and controls how that should be done, see
4.3.3.1. Browse DB
PaletteWB comes with many free palettes. The menu entry "
-> " opens a dialog that supports browsing this database and select a palette. The dialog looks as following.Figure 4.8. Dialog for browsing the palettes database

You can select a color palette source using the "Subset" drop-down. The entry "all" lists all color palettes from all sources.
You may choose items using the mouse or the keyboard.
4.3.3.2. Palette Generation
PaletteWB comes with the following methods for generating palettes:
- : generates a greyscale palette, see
- : generates a palette by interpolating between a set of colors; see
- : generates a palette using cosinus functions; see
4.3.3.2.1. Generate a Greyscale Palette
When choosing the menu entry "
-> -> " the current palette will be replaced by a plain greyscale palette.4.3.3.2.2. Generate a Palette by Interpolation
When choosing the menu entry "
-> -> " the following dialog will be shown.Figure 4.9. Dialog for generating a palette by interpolating between colors

A PaletteWB-preset can be chosen using the "Preset" drop-down.
Below, you will find a representation of the generated palette. A small greyscale ramp hints to the position. The resulting palette is shown below. Below, you will find the field to interact with the diamond-shaped "ticks" which define the colors to interpolate between.
You may generate new ticks by double-clicking an empty (not occupied by a tick) space. You may delete ticks by pressing the right mouse button on a tick. You may move a tick by selecting it with a single click and moving it. You may change the color of a tick by a double-click on it.
Please note that the first (index=0) and last (index=255) ticks cannot be moved or deleted.
The dialog offers additional controls for dealing with a selected tick and defining the methods for interpolation:
-
: shows the position (index) of the selected tick, allows to move the tick;
-
: shows the color of the selected tick, allows to change it by clicking with the left mouse button at the color field;
-
: defines the function to use on the right side of the selected tick;
-
: defines the color space to use for interpolation on the right side of the selected tick;
4.3.3.2.3. Generate a Palette Using Cosini
When choosing the menu entry "
-> -> " the following dialog will be shown.Figure 4.10. Dialog for generating a palette using cosini

The dialog offers additional controls for changing the selected area and setting the size of the image to generate:
You can change the parameters of the cosinus functions for the R, G, and B components.
For further information about generating palettes this way, see Inigo Quilez' article about palettes.
4.3.3.3. Applying Generation Patterns
A generation pattern may stretch a smaller palette. The following patterns are currently implemented:
- : a "persian raster" repetition pattern is applied, see
They are described in the following.
4.3.3.3.1. Persian Raster
When choosing the menu entry "
-> -> " the following dialog will be shown.Figure 4.11. Dialog for applying the Persian Raster repetition pattern

You can change the following parameters:
-
: the offset to the first color entry used;
-
: the height of the fins;
-
: the index increment between the fins;
-
: the index increment within a fin.
See this blog entry about Persian rasters for further information.
4.3.3.4. Color Adjustment
Currently, PaletteWB supports the following color adjustment options:
- : see
- : see
- : blurs the palette, see
They are described in the following.
4.3.3.4.1. Adjust Brightness / Contrast
When choosing the menu entry "
-> -> " the following dialog will be shown.Figure 4.12. Dialog for changing the palette colors' brightness and contrast

You can change the following parameters:
-
: changes the brightness of the colors;
-
: changes the contrast between colors.
4.3.3.4.2. Adjust Hue / Saturation / Value
When choosing the menu entry "
-> -> " the following dialog will be shown.Figure 4.13. Dialog for changing the palette colors' hue, saturation, and values

You can change the following parameters:
-
: changes the colors' hue;
-
: changes the colors' saturation;
-
: changes the colors' value.
If the "
" checkbox is set, the hue will be directly applied instead of changing it.4.3.3.4.3. Blur a Palette
When choosing the menu entry "
-> -> " the following dialog will be shown.Figure 4.14. Dialog for blurring the palette

You can change the following parameters:
-
: choose the color mode to use when blurring;
-
: you may select "running mean" or "normal (Gauß)" as the weighting function for blurring;
-
: if selected, the blurring algorithm will wrap around the palette's boundaries;
-
: this defines the size (window) of the blur filter for all components;
-
: this defines the size (window) of the blur filter for component #1 of the selected color space;
-
: this defines the size (window) of the blur filter for component #2 of the selected color space;
-
: this defines the size (window) of the blur filter for component #3 of the selected color space;
-
: this defines the size (window) of the blur filter for component #4 of the selected color space if existing (only for the CMYK color space).
4.3.3.5. Reordering Indices
Currently, PaletteWB supports the following options for changing the order of a palette's colors:
- : inverts the order of the palette's entries, see
- : shifts the entries by an offset, see
- : sorts the colors of the current palette, see
They are described in the following.
4.3.3.5.1. Invert Order
When choosing the menu entry "
-> -> " the order of the palette's colors will be inverted.4.3.3.5.2. Shift by Offset
When choosing the menu entry "
-> -> " the following dialog will be shown.Figure 4.15. Dialog for shifting the palette color indices by an offset

You can change the following parameters:
-
: changes the offset to shift the entries by.
4.3.3.5.3. Sort Colors
When choosing the menu entry "
-> -> " the following dialog will be shown.Figure 4.16. Dialog for sorting a palette's colors

You can change the following parameters:
-
: choose the color space to use when sorting;
-
: this defines the weight of component #1 of the selected color space;
-
: this defines the weight of component #2 of the selected color space;
-
: this defines the weight of component #3 of the selected color space;
-
: this defines the weight of component #4 of the selected color space if existing (only for the CMYK color space).
Please note that the image will look as-is, just that the color indices will change.
4.3.3.6. Batch Convert
This option allows you to convert multiple palettes in batch. When selecting "Palette -> Batch Convert...", the following dialog is shown:
Figure 4.17. Dialog for batch conversion

This dialog allows you to select the individual files as well as folders. When selecting folders, all found palette files stored within them will be converted. Whether a file is a palette file or not is determined by the file's extension. Using the "Assume file format:" option, you can force PaletteWB to convert only certain types of palettes. The "Convert to:" option allows you to set the format to convert the palettes to. The extension used by this file format will be automatically set. When exporting, some palette formats can have additional options, see Exporting Palettes. They can be set using the "Extended Settings" option.
4.3.4. The "View" Menu
Here, the zoom at a loaded/generated image can be changed:
-
: Increases the zoom factor by 25%;
-
: Decreases the zoom factor by 25%;
-
: Resets the zoom factor to normal size.
4.3.5. The "Help" Menu
Contains basic information about the application.
-
: Shows some information about the application.
4.4. Tool Bar
The tool bar contains shortcuts to the following menu entries which also can be found within the menu bar and were described previously:
4.5. User Database
If purposeful, dialogs contain a menu bar for loading / saving the current dialog values. Values can be either saved to / loaded from files, or can be stored in an internal database (DB). The following actions are possible:
- : The current settings are saved into an internal database, under a name the user may choose, see
- : The currently selected settings are removed from the database, see
- : The currently slected settings are renamed within the database into a named to be entered by the user, see
- : The database will be reloaded as it may have been changed by a further instance, see
- : Reads previously saved settings from a file, see
- : Saves the current settings into a file, see
In the following, these options will be described, first. Then, a description of the used format for importing and exporting the current dialog values to files is given.
- Beschreibungen
4.5.1. Interacting with the User Database
In the following, possibilities to interact with the user database are described.
4.5.1.1. Saving to DB
A new dialog value set can be stored in the user database. When pressing this button, you will be asked to enter a name for the value set. If the name already exists for this dialog, you will be informed. Otherwise, the current value set is stored in the database and can be restored afterwards.
4.5.1.2. Removing from DB
A value set previously saved by the user can be removed from the database. When pressing this button, you will be asked whether you really want to delete the value set. When confirmed, the value set is removed from the database and cannot be access in future.
Please note that internal value sets (presets) cannot be removed.
4.5.1.3. Rename in DB
A value set previously saved by the user can be renamed. When pressing this button, you will be asked for a new name of the value set. If the entered name already exists, you will be informed. Otherwise, the entry in the database will be renamed and is afterwards accessible via the new name.
Please note that internal value sets (presets) cannot be renamed.
4.5.1.. Reload DB
The contents of the user database can be altered while PaletteWB is running, e.g. through a second instance. For this purpose, it is possible to reload the current settings. When this button is pressed, the current database state is loaded.
4.5.1.5. Read from file
Value sets can be imported from files. Usually, such files are generated using the "Save to file" method. The format of these files is described in Import / Export Format.
When pressing this button, a file dialog will be shown where you can choose the file to read. When selecting a file, it will be loaded. If any error occurs, you will be informed.
4.5.1.6. Save to file
Value sets can be exported to files. The format of these files is described in Import / Export Format.
When pressing this button, a file dialog will be shown where you can choose a folder and a name to save the current value set to. If a file name was chosen, the current value set will saved into this file.
4.5.2. Import / Export Format
Dialog value sets are stored as key/value pairs in text files.
At first, a header is written, consisting of the dialog name and the application version. Then, every dialog element (selection, value, option) is stored in an own line, the name first, then the value.
As such, the format is:
<DIALOG_NAME> <PALETTEWB_VERSION> (<ENTRY_NAME>: <ENTRY_VALUE>)+
E.g., when exported, the value set for the adjust brightness / contrast dialog which decreases the brightness by 63 and increases the contrast by 61 will look as following:
brightness_contrast 1.8.0 brightness:-63 contrast:61
Appendix A. Supported Palette Types
The following table shows which palette formats are known by PaletteWB.
Table A.1. Palette formats that can be imported and exported
Palette Format | Extension | Can be read | Can be written |
---|---|---|---|
GIMP palette | gpl | yes | yes |
Adobe Photoshop palette | aco | yes | yes |
Fractint palette | map | yes | yes |
Microsoft palette | pal | yes | yes |
A hexadecimal color list | hextxt | yes | yes |
JavaScript list | js | no | yes |
CSS color list | css | no | yes |
HTML (as a table) | html | no | yes |
Appendix B. Formatted String Variables
At some places, a FORMAT_STRING is used. The string may contain placeholders for current values, e.g. the color table entry's index. The following placeholders are supported:
Table B.1. FORMAT_STRING variables
Palette Format | Extension |
---|---|
%f | the filename without extension |
%n | the name of the palette if given in the file, otherwise the file name (%f) |
%i | the index of the palette entry |
Legal Information
Daniel Krajzewicz
Jochen-Nüßler-Straße 5
12359 Berlin
USt-IdNr.: DE281155133
© Copyright 2009-2021 Daniel Krajzewicz
Last changed on January 21 2022 22:11:39.
203 visitors.
Contact: info@palettewb.com