Swatches and free software

Pattern swatches file formats

Proprietary formats

PAT (Photoshop Patterns)

Adobe Photoshop

Byte-order: Big-endian

Patterns2.pat (Adobe Illustrator CS4)

000000   38 42 50 54 00 01 00 00 00 18 00 00 00 01 00 00   8BPT............
000010   00 03 00 50 00 50 00 00 00 32 00 24 00 24 00 24   ...P.P...2.$.$.$
000020   00 2F 00 50 00 72 00 65 00 73 00 65 00 74 00 73   ./.P.r.e.s.e.t.s
......
04B170   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
04B180   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
04B190   00 00 00 00 00 00 00 00 00 00 00                  ...........

File signature 4*char (8BPT)
Version 1*int16 (1)
Number of patterns 1*int32
Patterns

Patterns

.......
01AB50   00 00 00 00 00 00 00 00 00 00 01 00 00 00 03 00   ................
01AB60   39 00 40 00 00 00 30 00 24 00 24 00 24 00 2F 00   9.@...0.$.$.$./.
01AB70   50 00 72 00 65 00 73 00 65 00 74 00 73 00 2F 00   P.r.e.s.e.t.s./.
01AB80   50 00 61 00 74 00 74 00 65 00 72 00 6E 00 73 00   P.a.t.t.e.r.n.s.
01AB90   2F 00 50 00 61 00 74 00 74 00 65 00 72 00 6E 00   /.P.a.t.t.e.r.n.
01ABA0   73 00 5F 00 70 00 61 00 74 00 2F 00 57 00 61 00   s._.p.a.t./.W.a.
01ABB0   66 00 66 00 6C 00 65 00 3D 00 57 00 61 00 66 00   f.f.l.e.=.W.a.f.
01ABC0   66 00 6C 00 65 00 00 24 31 62 32 39 38 37 36 37   f.l.e..$1b298767
01ABD0   2D 35 38 62 37 2D 31 31 64 34 2D 62 38 39 35 2D   -58b7-11d4-b895-
01ABE0   61 38 39 38 37 38 37 31 30 34 63 31 00 00 00 03   a898787104c1....
01ABF0   00 00 23 8C 00 00 00 00 00 00 00 00 00 00 00 39   ..#............9
01AC00   00 00 00 40 00 00 00 18 00 00 00 01 00 00 09 E2   ...@...........â
01AC10   00 00 00 08 00 00 00 00 00 00 00 00 00 00 00 39   ...............9
......
01B5E0   00 D5 FB D6 00 D5 FC D4 00 D5 FB D6 02 D5 D4 D4   .ÕûÖ.ÕüÔ.ÕûÖ.ÕÔÔ
01B5F0   C1 D4 00 00 00 01 00 00 0B AF 00 00 00 08 00 00   ÁÔ.......¯......
01B600   00 00 00 00 00 00 00 00 00 39 00 00 00 40 00 08   .........9...@..
......
01C190   84 00 83 FD 84 00 83 F5 84 00 83 ED 84 00 83 F5   ...ý...õ...í...õ
01C1A0   84 00 83 FD 84 00 83 FE 84 00 00 00 01 00 00 0B   ...ý...þ........
01C1B0   8C 00 00 00 08 00 00 00 00 00 00 00 00 00 00 00   ................
......
01CD20   5C 5A 5A FE 5A 00 59 FD 5A 00 59 F5 5A 00 59 ED   \ZZþZ.YýZ.YõZ.Yí
01CD30   5A 00 59 F5 5A 00 59 FD 5A 00 59 FE 5A 00 00 00   Z.YõZ.YýZ.YþZ...
01CD40   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
01CD50   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
01CD60   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
01CD70   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
01CD80   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
01CD90   00 00 00 00 00 00 00 00 01 00 00 01 E3 00 00 00   ............ã...
01CDA0   08 00 00 00 00 00 00 00 00 00 00 00 39 00 00 00   ............9...
01CDB0   40 00 08 01 00 08 00 06 00 06 00 06 00 06 00 06   @...............
......
01CF60   00 E9 C3 FF 00 E9 00 E9 C3 FF 00 E9 00 E9 C3 FF   .éÃÿ.é.éÃÿ.é.éÃÿ
01CF70   00 E9 00 EF C3 FF 00 EF 01 D6 EB C5 E9 01 EB D6   .é.ïÃÿ.ï.ÖëÅé.ëÖ
01CF80   00 00 00 01 00 00 00 01 00 80 00 80 00 00 00 3B   ...............;
01CF90   00 24 00 24 00 24 00 2F 00 50 00 72 00 65 00 73   .$.$.$./.P.r.e.s
......

Version 1*int32 (1)
Color model 1*int32 (0: B/W, 1: Grayscale, 2: Indexed, 3: RGB, 4: CMYK, 5: HSL, 6: HSB, 7: Multichannel, 8: Duotone, 9: Lab, 10: Gray 16-bit, 11: RGB: 48-bit) — it seems only 1, 2, 3, 4, 7, 9 are supported
Width Height 2*int16
Pattern name 0-terminated string of length (1*int32) double-byte characters
Pattern id Pascal string - string of length (1*int8) characters
If model is 2 (indexed), here come palette informations (256*3 bytes) + 4 unknown bytes
Version 1*int32 (3)
Pattern size 1*int32
Rectangle: top, left, bottom, right 4*int32
Number of channels 1*int32
Channels
???? 4 bytes (always 0 in the files I’ve analysed)
Alpha channel same structure as other channels

Channels

.......
01AC00   00 00 00 40 00 00 00 18 00 00 00 01 00 00 09 E2   ...@...........â
01AC10   00 00 00 08 00 00 00 00 00 00 00 00 00 00 00 39   ...............9
01AC20   00 00 00 40 00 08 01 00 02 00 16 00 3E 00 40 00   ...@........>.@.
01AC30   33 00 32 00 31 00 31 00 38 00 37 00 16 00 02 00   3.2.1.1.8.7.....
01AC40   02 00 38 00 3D 00 33 00 32 00 32 00 32 00 32 00   ..8.=.3.2.2.2.2.
......
01B5D0   FB D4 FB D6 FF D5 FD D4 00 D5 FB D6 00 D5 FC D4   ûÔûÖÿÕýÔ.ÕûÖ.ÕüÔ
01B5E0   00 D5 FB D6 00 D5 FC D4 00 D5 FB D6 02 D5 D4 D4   .ÕûÖ.ÕüÔ.ÕûÖ.ÕÔÔ
01B5F0   C1 D4 00 00 00 01 00 00 0B AF 00 00 00 08 00 00   ÁÔ.......¯......
01B600   00 00 00 00 00 00 00 00 00 39 00 00 00 40 00 08   .........9...@..
......

Boolean indicating whether channel is used
if true (1), followed by:
Channel size 1*int32
Depth 1*int32
Rectangle: top, left, bottom, right 4*int32
Depth 1*int16
Compression 1*int8 (0: data is uncompressed, 1: RLE (PackBits) compression, 2: ZIP without prediction, 3: ZIP with prediction) — however, I've only seen 0 and 1
Image data

Open formats

XML formats

SOH (StarOffice Hatches)

StarOffice / OpenOffice.org / LibreOffice

standard.soh

<?xml version="1.0" encoding="UTF-8"?>

<office:hatch-table xmlns:office="http://openoffice.org/2000/office" xmlns:style="http://openoffice.org/2000/style" xmlns:text="http://openoffice.org/2000/text" xmlns:table="http://openoffice.org/2000/table" xmlns:draw="http://openoffice.org/2000/drawing" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:meta="http://openoffice.org/2000/meta" xmlns:number="http://openoffice.org/2000/datastyle" xmlns:svg="http://www.w3.org/2000/svg" xmlns:chart="http://openoffice.org/2000/chart" xmlns:dr3d="http://openoffice.org/2000/dr3d" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:form="http://openoffice.org/2000/form" xmlns:script="http://openoffice.org/2000/script">
 <draw:hatch draw:name="Black 0 Degrees" draw:style="single" draw:color="#000000" draw:distance="0.0402inch" draw:rotation="0"/>
 <draw:hatch draw:name="Black 45 Degrees" draw:style="single" draw:color="#000000" draw:distance="0.0402inch" draw:rotation="450"/>
 <draw:hatch draw:name="Black -45 Degrees" draw:style="single" draw:color="#000000" draw:distance="0.0402inch" draw:rotation="3150"/>
 <draw:hatch draw:name="Black 90 Degrees" draw:style="single" draw:color="#000000" draw:distance="0.0402inch" draw:rotation="900"/>
 <draw:hatch draw:name="Red Crossed 45 Degrees" draw:style="double" draw:color="#800000" draw:distance="0.0299inch" draw:rotation="450"/>
 <draw:hatch draw:name="Red Crossed 0 Degrees" draw:style="double" draw:color="#800000" draw:distance="0.0299inch" draw:rotation="900"/>
 <draw:hatch draw:name="Blue Crossed 45 Degrees" draw:style="double" draw:color="#000080" draw:distance="0.0299inch" draw:rotation="450"/>
 <draw:hatch draw:name="Blue Crossed 0 Degrees" draw:style="double" draw:color="#000080" draw:distance="0.0299inch" draw:rotation="900"/>
 <draw:hatch draw:name="Blue Triple 90 Degrees" draw:style="triple" draw:color="#0000ff" draw:distance="0.0402inch" draw:rotation="900"/>
 <draw:hatch draw:name="Black 45 Degrees Wide" draw:style="single" draw:color="#000000" draw:distance="0.2inch" draw:rotation="450"/>
</office:hatch-table>
SOB (StarOffice Bitmap Pattern)

(zipped XML + PNG)

StarOffice / OpenOffice.org / LibreOffice

standard.sob

<?xml version="1.0" encoding="UTF-8"?>
<ooo:bitmap-table xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ooo="http://openoffice.org/2004/office">
 <draw:fill-image draw:name="Empty" xlink:href="Pictures/100000000000000800000008DD0ADA29.png" xlink:type="simple" xlink:show="embed" xlink:actuate="onLoad"/>
 <draw:fill-image draw:name="Sky" xlink:href="Pictures/100000000000005E0000005E71533790.png" xlink:type="simple" xlink:show="embed" xlink:actuate="onLoad"/>
 <draw:fill-image draw:name="Aqua" xlink:href="Pictures/100000000000005E0000005EA38222DC.png" xlink:type="simple" xlink:show="embed" xlink:actuate="onLoad"/>
 ...
 <draw:fill-image draw:name="Orange" xlink:href="Pictures/100000000000005E0000005E1A713443.png" xlink:type="simple" xlink:show="embed" xlink:actuate="onLoad"/>
 <draw:fill-image draw:name="Fiery" xlink:href="Pictures/100000000000005E0000005ECD3186FD.png" xlink:type="simple" xlink:show="embed" xlink:actuate="onLoad"/>
 <draw:fill-image draw:name="Roses" xlink:href="Pictures/100000000000005E0000005ED5F5C24A.png" xlink:type="simple" xlink:show="embed" xlink:actuate="onLoad"/>
</ooo:bitmap-table>

Binary formats

Gimp

Gimp

Official information

Creative Commons License
This work is licensed under a
Creative Commons Attribution-ShareAlike 3.0 Unported License.

icons by
famfamfam.com