Projects/Liberty/File Formats/Janome Embroidery Format: Difference between revisions
Purple-bobby (talk | contribs) |
Purple-bobby (talk | contribs) |
||
(10 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
== | == Janome Embroidery Format JEF == | ||
The JEF and JEF+ files consists of a number of sections. Multi-byte numbers appear to be stored little endian. For the JEF (and not JEF+ ) files, there is no simple signature, except to see if the Stitch-offset is after the Thread-type-list. | The JEF and JEF+ files consists of a number of sections. Multi-byte numbers appear to be stored little endian. For the JEF (and not JEF+ ) files, there is no simple signature, except to see if the Stitch-offset is after the Thread-type-list. The JEF pattern can easily be extracted from JEF+ files; by using the Stitch-offset to the Stitch-list, to skip over the JEF+ header; and then to ignore the JEF+ details, after the Stitch-list, at the end of the file. | ||
File = | File = File-header Thread-colour-list Thread-type-list [Plus-header] Stitch-list {Plus-detail} | ||
Thread-colour-list = {Thread-colour} | Thread-colour-list = {Thread-colour} | ||
Line 84: | Line 78: | ||
| 4 | | 4 | ||
| Measure | | Measure | ||
| Extent-2-left -1 implies not used | | Extent-2-left; -1 implies not used | ||
|- | |- | ||
| 56 | | 56 | ||
Line 104: | Line 98: | ||
| 4 | | 4 | ||
| Measure | | Measure | ||
| Extent-3-left -1 implies not used | | Extent-3-left; -1 implies not used | ||
|- | |- | ||
| 72 | | 72 | ||
Line 124: | Line 118: | ||
| 4 | | 4 | ||
| Measure | | Measure | ||
| Extent-4-left -1 implies not used | | Extent-4-left; -1 implies not used | ||
|- | |- | ||
| 88 | | 88 | ||
Line 144: | Line 138: | ||
| 4 | | 4 | ||
| Measure | | Measure | ||
| Extent-5-left -1 implies not used | | Extent-5-left; -1 implies not used | ||
|- | |- | ||
| 104 | | 104 | ||
Line 169: | Line 163: | ||
|- | |- | ||
| 0 | | 0 | ||
| A | | A Standard | ||
| | | 126 x 110 mm | ||
|- | |- | ||
| 1 | | 1 | ||
| C | | C Free Arm | ||
| 50 x 50 mm | | 50 x 50 mm | ||
|- | |- | ||
| 2 | | 2 | ||
| B | | B Large | ||
| 140 x 200 mm | | 140 x 200 mm | ||
|- | |- | ||
| 3 | | 3 | ||
| F | | F Spring Loaded | ||
| 126 x 110 mm | | 126 x 110 mm | ||
|- | |- | ||
| 4 | | 4 | ||
| D | | D Giga | ||
| 230 x 200 mm | | 230 x 200 mm | ||
|} | |} | ||
Line 209: | Line 203: | ||
| Colour-name | | Colour-name | ||
|- | |- | ||
| | | 1 | ||
| "#000000" | | "#000000" | ||
| | | 002 | ||
| "Black" | | "Black" | ||
|- | |- | ||
| | | 2 | ||
| "#F0F0F0" | | "#F0F0F0" | ||
| | | 001 | ||
| "White" | | "White" | ||
|- | |- | ||
| | | 3 | ||
| "#FFCC00" | | "#FFCC00" | ||
| 239 | | 239 | ||
| "Sunflower" | | "Sunflower" | ||
|- | |- | ||
| | | 4 | ||
| "#E6651E" | | "#E6651E" | ||
| 254 | | 254 | ||
| "Hazel" | | "Hazel" | ||
|- | |- | ||
| | | 5 | ||
| "#C4E39D" | | "#C4E39D" | ||
| 264 | | 264 | ||
| "Green Dust" | | "Green Dust" | ||
|- | |- | ||
| | | 6 | ||
| "#237336" | | "#237336" | ||
| 226 | | 226 | ||
| "Green" | | "Green" | ||
|- | |- | ||
| | | 7 | ||
| "#071650" | | "#071650" | ||
| 232 | | 232 | ||
| "Navy Blue" | | "Navy Blue" | ||
|- | |- | ||
| | | 8 | ||
| "#4CB58F" | | "#4CB58F" | ||
| 250 | | 250 | ||
| "Emerald Green" | | "Emerald Green" | ||
|- | |- | ||
| | | 9 | ||
| "#F669A0" | | "#F669A0" | ||
| 201 | | 201 | ||
| "Pink" | | "Pink" | ||
|- | |- | ||
| | | 10 | ||
| "#FF4720" | | "#FF4720" | ||
| 202 | | 202 | ||
| "Vermilion" | | "Vermilion" | ||
|- | |- | ||
| | | 11 | ||
| "#E2A188" | | "#E2A188" | ||
| 236 | | 236 | ||
| "Cinnamon" | | "Cinnamon" | ||
|- | |- | ||
| | | 12 | ||
| "#595B61" | | "#595B61" | ||
| 252 | | 252 | ||
| "Dark Gray" | | "Dark Gray" | ||
|- | |- | ||
| | | 13 | ||
| "#E4C35D" | | "#E4C35D" | ||
| | | 003 | ||
| "Gold" | | "Gold" | ||
|- | |- | ||
| | | 14 | ||
| "#6231BD" | | "#6231BD" | ||
| 261 | | 261 | ||
| "Violet Blue" | | "Violet Blue" | ||
|- | |- | ||
| | | 15 | ||
| "#2F5933" | | "#2F5933" | ||
| 219 | | 219 | ||
| "Olive Green" | | "Olive Green" | ||
|- | |- | ||
| | | 16 | ||
| "#FAB381" | | "#FAB381" | ||
| 212 | | 212 | ||
| "Peach" | | "Peach" | ||
|- | |- | ||
| | | 17 | ||
| "#F999B7" | | "#F999B7" | ||
| 211 | | 211 | ||
| "Pale Pink" | | "Pale Pink" | ||
|- | |- | ||
| | | 18 | ||
| "#F09C96" | | "#F09C96" | ||
| 256 | | 256 | ||
| "Salmon" | | "Salmon" | ||
|- | |- | ||
| | | 19 | ||
| "#A39166" | | "#A39166" | ||
| 268 | | 268 | ||
| "Olive Drab" | | "Olive Drab" | ||
|- | |- | ||
| | | 20 | ||
| "#970533" | | "#970533" | ||
| 215 | | 215 | ||
| "Wine Red" | | "Wine Red" | ||
|- | |- | ||
| | | 21 | ||
| "#AC9CC7" | | "#AC9CC7" | ||
| 209 | | 209 | ||
| "Pale Violet" | | "Pale Violet" | ||
|- | |- | ||
| | | 22 | ||
| "#65C2C8" | | "#65C2C8" | ||
| 217 | | 217 | ||
| "Sky" | | "Sky" | ||
|- | |- | ||
| | | 23 | ||
| "#E5E5E5" | | "#E5E5E5" | ||
| 220 | | 220 | ||
| "Silver Gray" | | "Silver Gray" | ||
|- | |- | ||
| | | 24 | ||
| "#A0B8CC" | | "#A0B8CC" | ||
| 216 | | 216 | ||
| "Pale Sky" | | "Pale Sky" | ||
|- | |- | ||
| | | 25 | ||
| "#98D6BD" | | "#98D6BD" | ||
| 227 | | 227 | ||
| "Pale Aqua" | | "Pale Aqua" | ||
|- | |- | ||
| | | 26 | ||
| "#0B2F84" | | "#0B2F84" | ||
| 207 | | 207 | ||
| "Blue" | | "Blue" | ||
|- | |- | ||
| | | 27 | ||
| "#98F3FE" | | "#98F3FE" | ||
| 229 | | 229 | ||
| "Powder Blue" | | "Powder Blue" | ||
|- | |- | ||
| | | 28 | ||
| "#B2E1E3" | | "#B2E1E3" | ||
| 228 | | 228 | ||
| "Baby Blue" | | "Baby Blue" | ||
|- | |- | ||
| | | 29 | ||
| "#FF0927" | | "#FF0927" | ||
| 244 | | 244 | ||
| "Cardinal Red" | | "Cardinal Red" | ||
|- | |- | ||
| | | 30 | ||
| "#14329C" | | "#14329C" | ||
| 262 | | 262 | ||
| "Blue Ink" | | "Blue Ink" | ||
|- | |- | ||
| | | 31 | ||
| "#A80043" | | "#A80043" | ||
| 242 | | 242 | ||
| "Burgundy" | | "Burgundy" | ||
|- | |- | ||
| | | 32 | ||
| "#FF6600" | | "#FF6600" | ||
| 203 | | 203 | ||
| "Orange" | | "Orange" | ||
|- | |- | ||
| | | 33 | ||
| "#FF6048" | | "#FF6048" | ||
| 234 | | 234 | ||
| "Coral" | | "Coral" | ||
|- | |- | ||
| | | 34 | ||
| "#B59474" | | "#B59474" | ||
| 237 | | 237 | ||
| "Umber" | | "Umber" | ||
|- | |- | ||
| | | 35 | ||
| "#FDF5B5" | | "#FDF5B5" | ||
| 210 | | 210 | ||
| "Pale Yellow" | | "Pale Yellow" | ||
|- | |- | ||
| | | 36 | ||
| "#F5DB8B" | | "#F5DB8B" | ||
| 238 | | 238 | ||
| "Blond" | | "Blond" | ||
|- | |- | ||
| | | 37 | ||
| "#C79732" | | "#C79732" | ||
| 272 | | 272 | ||
| "Old Gold" | | "Old Gold" | ||
|- | |- | ||
| | | 38 | ||
| "#889B9B" | | "#889B9B" | ||
| 221 | | 221 | ||
| "Gray" | | "Gray" | ||
|- | |- | ||
| | | 39 | ||
| "#AB5A96" | | "#AB5A96" | ||
| 208 | | 208 | ||
| "Purple" | | "Purple" | ||
|- | |- | ||
| | | 40 | ||
| "#FFBDE3" | | "#FFBDE3" | ||
| 240 | | 240 | ||
| "Orchid Pink" | | "Orchid Pink" | ||
|- | |- | ||
| | | 41 | ||
| "#C3007E" | | "#C3007E" | ||
| 241 | | 241 | ||
| "Peony Purple" | | "Peony Purple" | ||
|- | |- | ||
| | | 42 | ||
| "#FF0000" | | "#FF0000" | ||
| 225 | | 225 | ||
| "Red" | | "Red" | ||
|- | |- | ||
| | | 43 | ||
| "#EE71AF" | | "#EE71AF" | ||
| 266 | | 266 | ||
| "Floral Pink" | | "Floral Pink" | ||
|- | |- | ||
| | | 44 | ||
| "#608541" | | "#608541" | ||
| 246 | | 246 | ||
| "Moss Green" | | "Moss Green" | ||
|- | |- | ||
| | | 45 | ||
| "#609418" | | "#609418" | ||
| 247 | | 247 | ||
| "Meadow Green" | | "Meadow Green" | ||
|- | |- | ||
| | | 46 | ||
| "#C6EECB" | | "#C6EECB" | ||
| 245 | | 245 | ||
| "Opal Green" | | "Opal Green" | ||
|- | |- | ||
| | | 47 | ||
| "#5BD2B5" | | "#5BD2B5" | ||
| 249 | | 249 | ||
| "Aquamarine" | | "Aquamarine" | ||
|- | |- | ||
| | | 48 | ||
| "#FFFF17" | | "#FFFF17" | ||
| 204 | | 204 | ||
| "Yellow" | | "Yellow" | ||
|- | |- | ||
| | | 49 | ||
| "#04917B" | | "#04917B" | ||
| 251 | | 251 | ||
| "Peacock Green" | | "Peacock Green" | ||
|- | |- | ||
| | | 50 | ||
| "#5C2625" | | "#5C2625" | ||
| 260 | | 260 | ||
| "Dark Sepia" | | "Dark Sepia" | ||
|- | |- | ||
| | | 51 | ||
| "#FFFFDC" | | "#FFFFDC" | ||
| 253 | | 253 | ||
| "Ivory White" | | "Ivory White" | ||
|- | |- | ||
| | | 52 | ||
| "#FF5A27" | | "#FF5A27" | ||
| 235 | | 235 | ||
| "Burnt Orange" | | "Burnt Orange" | ||
|- | |- | ||
| | | 53 | ||
| "#A76C3D" | | "#A76C3D" | ||
| 257 | | 257 | ||
| "Cocoa Brown" | | "Cocoa Brown" | ||
|- | |- | ||
| | | 54 | ||
| "#9C6445" | | "#9C6445" | ||
| 214 | | 214 | ||
| "Brown" | | "Brown" | ||
|- | |- | ||
| | | 55 | ||
| "#B45A30" | | "#B45A30" | ||
| 258 | | 258 | ||
| "Sienna" | | "Sienna" | ||
|- | |- | ||
| | | 56 | ||
| "#481A05" | | "#481A05" | ||
| 205 | | 205 | ||
| "Dark Brown" | | "Dark Brown" | ||
|- | |- | ||
| | | 57 | ||
| "#0C8918" | | "#0C8918" | ||
| 269 | | 269 | ||
| "Meadow" | | "Meadow" | ||
|- | |- | ||
| | | 58 | ||
| "#70A9E2" | | "#70A9E2" | ||
| 230 | | 230 | ||
| "Bright Blue" | | "Bright Blue" | ||
|- | |- | ||
| | | 59 | ||
| "#1D5478" | | "#1D5478" | ||
| 231 | | 231 | ||
| "Slate Blue" | | "Slate Blue" | ||
|- | |- | ||
| | | 60 | ||
| "#165FA7" | | "#165FA7" | ||
| 263 | | 263 | ||
| "Solar Blue" | | "Solar Blue" | ||
|- | |- | ||
| | | 61 | ||
| "#7FC21C" | | "#7FC21C" | ||
| 218 | | 218 | ||
| "Yellow Green" | | "Yellow Green" | ||
|- | |- | ||
| | | 62 | ||
| "#06480D" | | "#06480D" | ||
| 248 | | 248 | ||
| "Dark Green" | | "Dark Green" | ||
|- | |- | ||
| | | 63 | ||
| "#843154" | | "#843154" | ||
| 267 | | 267 | ||
| "Wine" | | "Wine" | ||
|- | |- | ||
| | | 64 | ||
| "#FD33A3" | | "#FD33A3" | ||
| 265 | | 265 | ||
| "Crimson" | | "Crimson" | ||
|- | |- | ||
| | | 65 | ||
| "#FFBBBB" | | "#FFBBBB" | ||
| 233 | | 233 | ||
| "Salmon Pink" | | "Salmon Pink" | ||
|- | |- | ||
| | | 66 | ||
| "#F7F297" | | "#F7F297" | ||
| 270 | | 270 | ||
| "Mustard" | | "Mustard" | ||
|- | |- | ||
| | | 67 | ||
| "#00B552" | | "#00B552" | ||
| 206 | | 206 | ||
| "Bright Green" | | "Bright Green" | ||
|- | |- | ||
| | | 68 | ||
| "#FCF121" | | "#FCF121" | ||
| 275 | | 275 | ||
| "Canary Yellow" | | "Canary Yellow" | ||
|- | |- | ||
| | | 69 | ||
| "#E6965A" | | "#E6965A" | ||
| 255 | | 255 | ||
| "Toast" | | "Toast" | ||
|- | |- | ||
| | | 70 | ||
| "#D7BDA4" | | "#D7BDA4" | ||
| 213 | | 213 | ||
| "Beige" | | "Beige" | ||
|- | |- | ||
| | | 71 | ||
| "#FF9D00" | | "#FF9D00" | ||
| 273 | | 273 | ||
| "Honey Dew" | | "Honey Dew" | ||
|- | |- | ||
| | | 72 | ||
| "#FFBA5E" | | "#FFBA5E" | ||
| 274 | | 274 | ||
| "Tangerine" | | "Tangerine" | ||
|- | |- | ||
| | | 73 | ||
| "#0257B5" | | "#0257B5" | ||
| 222 | | 222 | ||
| "Ocean Blue" | | "Ocean Blue" | ||
|- | |- | ||
| | | 74 | ||
| "#6E3937" | | "#6E3937" | ||
| 259 | | 259 | ||
| "Sepia" | | "Sepia" | ||
|- | |- | ||
| | | 75 | ||
| "#540571" | | "#540571" | ||
| 243 | | 243 | ||
| "Royal Purple" | | "Royal Purple" | ||
|- | |- | ||
| | | 76 | ||
| "#CC9900" | | "#CC9900" | ||
| 271 | | 271 | ||
| "Yellow Ocher" | | "Yellow Ocher" | ||
|- | |- | ||
| | | 77 | ||
| "#D0BAB0" | | "#D0BAB0" | ||
| 223 | | 223 | ||
| "Beige Gray" | | "Beige Gray" | ||
|- | |- | ||
| | | 78 | ||
| "#E3BE81" | | "#E3BE81" | ||
| 224 | | 224 | ||
Line 701: | Line 695: | ||
===Plus-detail=== | ===Plus-detail=== | ||
Unknown, many 32 bit numbers, then many 16 bit numbers. | Unknown, many 32 bit numbers, then many 16 bit numbers. | ||
== SEW Format == | |||
This appears to be an earlier format, it is fairly simple (from the examples seen), it includes bitmap previews, but sometimes they do not match the pattern described in stitches. The format seems to use the same thread colour codes and the same stitch-list as JEF. | |||
Format appears to be little endian, except for the bitmaps. | |||
SEW-file = SEW-header {Bitmap} {stitch} | |||
=== SEW-header === | |||
Only SEW files | |||
{| class="wikitable" | |||
| Offset | |||
| Length | |||
| Type | |||
| Description | |||
|- | |||
| 0 | |||
| 2 | |||
| Count | |||
| Colour count; maximum of 12 colours | |||
|- | |||
| 2 | |||
| 12x2 | |||
| Table | |||
| Colour index table padded with 0; JEF colour code | |||
|- | |||
| 0x1A | |||
| 12x2 | |||
| Table | |||
| Colour unknown; all entries appear to have the same value: 8 or 0 or 255 | |||
|- | |||
| 0x32 | |||
| 12x2 | |||
| Table | |||
| Stitches per colour (minus a few) | |||
|- | |||
| 0x4A | |||
| | |||
| | |||
| | |||
|} | |||
=== Bitmap === | |||
The bitmaps and sets of bitmaps appear to start at several fixed file offsets:<br/> | |||
0x004A 1 x 48 pixel by 32 lines monochrome<br/> | |||
0x010C 1 to 12 x 24 by 16, one for each colour<br/> | |||
0x043C 1 x 64 by 48 monochrome<br/> | |||
0x05BE 1 to 12 x 64 by 48, one for each colour<br/> | |||
0x17D6 1 x w x h, variously sized monochrome outline and centre mark.<br/> | |||
There are about 1440 bytes before the stitch-list. | |||
This last bitmap may give an indication of the size in millimetres, the width will be a multiple of 8 mm. The available bits (for pixels or mm) 1440 x 8 = 11,520 gives a maximum size around 120 mm x 96 mm, so may be not. | |||
{| class="wikitable" | |||
| Offset | |||
| Length | |||
| Type | |||
| Description | |||
|- | |||
| 0 | |||
| 1 | |||
| Count | |||
| Width of bitmap in (8 bit) bytes | |||
|- | |||
| 1 | |||
| 1 | |||
| Count | |||
| Height of bitmap in lines/rows | |||
|- | |||
| 2 | |||
| Width x Height | |||
| Byte | |||
| Bits from top to bottom, left to right, MSB to LSB | |||
|- | |||
|2 + Width x Height | |||
| | |||
| | |||
| | |||
|} | |||
The bitmap is similar to PBM P4 format, a PBM file can be created by writing:<br/> | |||
"P4\n" | |||
"%d %d\n", Width * 8, Height | |||
then copy Width x Height chars | |||
=== Stitch === | |||
The SEW stitches appear to start at the fixed file offset 0x1D78, and use the same Escaped-command and (8 bit, 8 bit) Displacement as JEF above. | |||
Latest revision as of 10:00, 17 September 2012
Janome Embroidery Format JEF
The JEF and JEF+ files consists of a number of sections. Multi-byte numbers appear to be stored little endian. For the JEF (and not JEF+ ) files, there is no simple signature, except to see if the Stitch-offset is after the Thread-type-list. The JEF pattern can easily be extracted from JEF+ files; by using the Stitch-offset to the Stitch-list, to skip over the JEF+ header; and then to ignore the JEF+ details, after the Stitch-list, at the end of the file.
File = File-header Thread-colour-list Thread-type-list [Plus-header] Stitch-list {Plus-detail}
Thread-colour-list = {Thread-colour}
Thread-type-list = {Thread-type}
Stitch-list = {Stitch}
Stitch = Escaped-command | Displacement
File-header
Offset | Length | Type | Description |
0 | 4 | Offset | Stitch-offset location of first stitch |
4 | 4 | Flags | unknown = 1, 10 or 20 |
8 | 8 | ASCII | Date YYYYMMDD |
16 | 8 | ASCII | Time HHMMSSxx |
24 | 4 | Count | Thread-count number of thread changes |
28 | 4 | Count | Stitch-count |
32 | 4 | Code | Hoop-code = 0 to 4 |
36 | 4 | Measure | Extent-1-left stitch extent left of centre in 0.1 mm units |
40 | 4 | Measure | Extent-1-top |
44 | 4 | Measure | Extent-1-right |
48 | 4 | Measure | Extent-1-bottom |
52 | 4 | Measure | Extent-2-left; -1 implies not used |
56 | 4 | Measure | Extent-2-top |
60 | 4 | Measure | Extent-2-right |
64 | 4 | Measure | Extent-2-bottom |
68 | 4 | Measure | Extent-3-left; -1 implies not used |
72 | 4 | Measure | Extent-3-top |
76 | 4 | Measure | Extent-3-right |
80 | 4 | Measure | Extent-3-bottom |
84 | 4 | Measure | Extent-4-left; -1 implies not used |
88 | 4 | Measure | Extent-4-top |
92 | 4 | Measure | Extent-4-right |
96 | 4 | Measure | Extent-4-bottom |
100 | 4 | Measure | Extent-5-left; -1 implies not used |
104 | 4 | Measure | Extent-5-top |
108 | 4 | Measure | Extent-5-right |
112 | 4 | Measure | Extent-5-bottom |
Hoop-code
Hoop-code | Hoop-name | Hoop-size |
0 | A Standard | 126 x 110 mm |
1 | C Free Arm | 50 x 50 mm |
2 | B Large | 140 x 200 mm |
3 | F Spring Loaded | 126 x 110 mm |
4 | D Giga | 230 x 200 mm |
Thread-colour
Offset | Length | Type | Description |
0 | 4 | Code | Thread-code = 1 to 78 |
Thread-code | Colour-RGB | Colour-number | Colour-name |
1 | "#000000" | 002 | "Black" |
2 | "#F0F0F0" | 001 | "White" |
3 | "#FFCC00" | 239 | "Sunflower" |
4 | "#E6651E" | 254 | "Hazel" |
5 | "#C4E39D" | 264 | "Green Dust" |
6 | "#237336" | 226 | "Green" |
7 | "#071650" | 232 | "Navy Blue" |
8 | "#4CB58F" | 250 | "Emerald Green" |
9 | "#F669A0" | 201 | "Pink" |
10 | "#FF4720" | 202 | "Vermilion" |
11 | "#E2A188" | 236 | "Cinnamon" |
12 | "#595B61" | 252 | "Dark Gray" |
13 | "#E4C35D" | 003 | "Gold" |
14 | "#6231BD" | 261 | "Violet Blue" |
15 | "#2F5933" | 219 | "Olive Green" |
16 | "#FAB381" | 212 | "Peach" |
17 | "#F999B7" | 211 | "Pale Pink" |
18 | "#F09C96" | 256 | "Salmon" |
19 | "#A39166" | 268 | "Olive Drab" |
20 | "#970533" | 215 | "Wine Red" |
21 | "#AC9CC7" | 209 | "Pale Violet" |
22 | "#65C2C8" | 217 | "Sky" |
23 | "#E5E5E5" | 220 | "Silver Gray" |
24 | "#A0B8CC" | 216 | "Pale Sky" |
25 | "#98D6BD" | 227 | "Pale Aqua" |
26 | "#0B2F84" | 207 | "Blue" |
27 | "#98F3FE" | 229 | "Powder Blue" |
28 | "#B2E1E3" | 228 | "Baby Blue" |
29 | "#FF0927" | 244 | "Cardinal Red" |
30 | "#14329C" | 262 | "Blue Ink" |
31 | "#A80043" | 242 | "Burgundy" |
32 | "#FF6600" | 203 | "Orange" |
33 | "#FF6048" | 234 | "Coral" |
34 | "#B59474" | 237 | "Umber" |
35 | "#FDF5B5" | 210 | "Pale Yellow" |
36 | "#F5DB8B" | 238 | "Blond" |
37 | "#C79732" | 272 | "Old Gold" |
38 | "#889B9B" | 221 | "Gray" |
39 | "#AB5A96" | 208 | "Purple" |
40 | "#FFBDE3" | 240 | "Orchid Pink" |
41 | "#C3007E" | 241 | "Peony Purple" |
42 | "#FF0000" | 225 | "Red" |
43 | "#EE71AF" | 266 | "Floral Pink" |
44 | "#608541" | 246 | "Moss Green" |
45 | "#609418" | 247 | "Meadow Green" |
46 | "#C6EECB" | 245 | "Opal Green" |
47 | "#5BD2B5" | 249 | "Aquamarine" |
48 | "#FFFF17" | 204 | "Yellow" |
49 | "#04917B" | 251 | "Peacock Green" |
50 | "#5C2625" | 260 | "Dark Sepia" |
51 | "#FFFFDC" | 253 | "Ivory White" |
52 | "#FF5A27" | 235 | "Burnt Orange" |
53 | "#A76C3D" | 257 | "Cocoa Brown" |
54 | "#9C6445" | 214 | "Brown" |
55 | "#B45A30" | 258 | "Sienna" |
56 | "#481A05" | 205 | "Dark Brown" |
57 | "#0C8918" | 269 | "Meadow" |
58 | "#70A9E2" | 230 | "Bright Blue" |
59 | "#1D5478" | 231 | "Slate Blue" |
60 | "#165FA7" | 263 | "Solar Blue" |
61 | "#7FC21C" | 218 | "Yellow Green" |
62 | "#06480D" | 248 | "Dark Green" |
63 | "#843154" | 267 | "Wine" |
64 | "#FD33A3" | 265 | "Crimson" |
65 | "#FFBBBB" | 233 | "Salmon Pink" |
66 | "#F7F297" | 270 | "Mustard" |
67 | "#00B552" | 206 | "Bright Green" |
68 | "#FCF121" | 275 | "Canary Yellow" |
69 | "#E6965A" | 255 | "Toast" |
70 | "#D7BDA4" | 213 | "Beige" |
71 | "#FF9D00" | 273 | "Honey Dew" |
72 | "#FFBA5E" | 274 | "Tangerine" |
73 | "#0257B5" | 222 | "Ocean Blue" |
74 | "#6E3937" | 259 | "Sepia" |
75 | "#540571" | 243 | "Royal Purple" |
76 | "#CC9900" | 271 | "Yellow Ocher" |
77 | "#D0BAB0" | 223 | "Beige Gray" |
78 | "#E3BE81" | 224 | "Bamboo" |
Thread-type
Offset | Length | Type | Description |
0 | 4 | int | unknown = 13 |
Plus-header
Only in JEF+ files.
Offset | Length | Type | Description |
0 | 4 | int | Signature-1 = 0 |
4 | 4 | int | Signature-2 = 0 |
8 | 8 | ASCII | Signature-3 = "JANOME\0\0" |
16 | 4 | Count | Plus-detail-count = 1 |
20 | 4 | Offset | Plus-detail-offset from file-start to JEF+ extra details |
Escaped-command
Offset | Length | Type | Description |
0 | 1 | Byte | Escape = -128 or 0x80 |
1 | 1 | Byte | Command-code = 1, 2 or 16 |
Command-code | Description |
1 | Change to next thread in list |
2 | Move followed by 8 bit displacement-X and 8 bit displacement-Y |
16 | Last-stitch |
Displacement
Offset | Length | Type | Description |
0 | 1 | Byte | Displacement-X -127 to 127 in 0.1 mm |
1 | 1 | Byte | Displacement-Y -127 to 127 in 0.1 mm |
Plus-detail
Unknown, many 32 bit numbers, then many 16 bit numbers.
SEW Format
This appears to be an earlier format, it is fairly simple (from the examples seen), it includes bitmap previews, but sometimes they do not match the pattern described in stitches. The format seems to use the same thread colour codes and the same stitch-list as JEF.
Format appears to be little endian, except for the bitmaps.
SEW-file = SEW-header {Bitmap} {stitch}
SEW-header
Only SEW files
Offset | Length | Type | Description |
0 | 2 | Count | Colour count; maximum of 12 colours |
2 | 12x2 | Table | Colour index table padded with 0; JEF colour code |
0x1A | 12x2 | Table | Colour unknown; all entries appear to have the same value: 8 or 0 or 255 |
0x32 | 12x2 | Table | Stitches per colour (minus a few) |
0x4A |
Bitmap
The bitmaps and sets of bitmaps appear to start at several fixed file offsets:
0x004A 1 x 48 pixel by 32 lines monochrome
0x010C 1 to 12 x 24 by 16, one for each colour
0x043C 1 x 64 by 48 monochrome
0x05BE 1 to 12 x 64 by 48, one for each colour
0x17D6 1 x w x h, variously sized monochrome outline and centre mark.
There are about 1440 bytes before the stitch-list.
This last bitmap may give an indication of the size in millimetres, the width will be a multiple of 8 mm. The available bits (for pixels or mm) 1440 x 8 = 11,520 gives a maximum size around 120 mm x 96 mm, so may be not.
Offset | Length | Type | Description |
0 | 1 | Count | Width of bitmap in (8 bit) bytes |
1 | 1 | Count | Height of bitmap in lines/rows |
2 | Width x Height | Byte | Bits from top to bottom, left to right, MSB to LSB |
2 + Width x Height |
The bitmap is similar to PBM P4 format, a PBM file can be created by writing:
"P4\n" "%d %d\n", Width * 8, Height
then copy Width x Height chars
Stitch
The SEW stitches appear to start at the fixed file offset 0x1D78, and use the same Escaped-command and (8 bit, 8 bit) Displacement as JEF above.