In Adobe Photoshop, the active swatches palette can be saved to, or loaded from, an ACO (Adobe COlor) file.
Two versions of the palette format exist:
When saving an ACO file, Photoshop releases prior to 7.0 wrote only a version 1 palette. When loading an ACO file today, these old versions of Photoshop read the version 1 palette and ignore any version 2 palette that may be present.
Photoshop 7.0 writes a version 1 palette followed by a version 2 palette. When loading an ACO file, it reads the version 2 palette, if present. Otherwise, it reads the version 1 palette.
Each palette in an ACO file is a series of 16-bit big-endian words.
Macs are big-endian. On Wintel machines, it is necessary to swap the bytes of each 16-bit word.
The palette begins with a two-word header:
version (0 or 1) |
nc (number of colors) |
The header is followed by nc color specs. In a version 1 ACO file, each color spec occupies five words:
color space
|
w
|
x
|
y
|
z
|
In a version 2 ACO file, those five words are followed by the color name in the following format:
0
|
len + 1
|
len words (UTF-16
representation of the name)
|
0
|
|
Example: The name "A2" appears as hexadecimal 00 03 41 62 00 (ASCII "A2" = 4162; len=2, len+1=3).
The table below describes the process for converting a color spec (three or four 16-bit values) to its Photoshop color picker equivalent (three or four 8-bit values).
Example:
range: 0..65535
H[0..360°)=w/182.04 |
Interpretation:
- The range of values for this 16-bit word is 0 to 65535, inclusive.
- When the range begins with 0, the word is an unsigned int.
- When the range begins with a negative number, the word is a signed int.
- The color coordinate H is determined by this word. In the Photoshop color picker, H ranges from 0° inclusive to 360° exclusive. To calculate a value of H in the color picker's range, divide w by 182.04.
- The mathematical notation [...] denotes a closed interval that includes the values adjacent to the brackets.
- The notation [...) denotes a half-open interval that excludes the value adjacent to the parenthesis.
- The Photoshop color picker rounds fractions down to whole numbers.
| # | Name | w | x | y | z |
|---|---|---|---|---|---|
0 |
RGB | R[0..256)=w/256 |
G[0..256)=x/256 |
B[0..256)=y/256 |
|
1 |
HSB | H[0..360°)=w/182.04 |
S[0..100%]=x/655.35 |
B[0..100%]=y/655.35 |
|
2 |
CMYK | C[0..100%]=100-w/655.35 |
M[0..100%]=100-x/655.35 |
Y[0..100%]=100-y/655.35 |
K[0..100%]=100-z/655.35 |
7 |
Lab | L*[0..100]=w/100 |
a*[-128..127]=x/100 |
b*[-128..127]=y/100 |
|
8 |
Grayscale | R,G,B[0..256)=w/39.0625 |
|||
9 |
Wide CMYK | C[0..100%]=w/100 |
M[0..100%]=x/100 |
Y[0..100%]=y/100 |
K[0..100%]=z/100 |
In addition to the above, Photoshop 7.0 can read color spaces #13 and #15. I have not been able to identify these two spaces.
Photoshop 7.0 can not read color spaces #3-6, #10-12, #14. Plug-ins may be available that can read these and other color spaces.
For information about the format of Adobe Color Book (ACB) files, see: The Unofficial Photoshop Color Book File Format Specification by Ates Goral.
This page was contributed to the public domain by Larry Tesler, 9-Oct-2004.