This page describes the Seattle FilmWorks / PhotoWorks .sfw file header, including its list of "triplet" indexes into the remainder of the file, a list of all known triplet types, and the most common triplet configurations. This description also includes the .pwm file header.
The mechanism of describing this is to simply extract the text that was previously included in the sfw98jpgtran.c and sfwwhichfmt.c source's header for their list_sfw_header_triplets() routine. This page will now be my main place of documenting the .sfw (and .pwm) file header and associated triplets.
/* * List .sfw header triplets. * * NOTE: All the following listed .sfw header triplet types' names * and other .sfw structure definition names have been dreamed up * by Richard Jones after analyzing a slew of .sfw images. * They are his own unofficial interpretation of the .sfw file format * and are not to be considered an official Seattle FilmWorks * or PhotoWorks.com explanation!! * * The .sfw file should begin with the 6-byte string "SFW94A" or "SFW98A". * * Following this are three 2-byte (little endian) binary values that * should look exactly like the following values: * * byte #: 07 08 09 10 11 12 * first last * byte byte * v v * values: 04 00 10 00 0n 00 * ^^^^^ ^^^^^ ^^^^^ * bytes # ????? * of slots format, * one rsvd where * triplet for n=2 (>=2000-02-23 CDs) * value triplets 1 (<=1999-07-29 CDs). * * The triplets then follow these beginning 12 bytes... * * The .sfw header triplets begin at offset 0x0C and continue until * just before offset 0xCC. * * There are slots for 0x0010 = 16 triplets (in every .sfw file I've seen). * However, the PhotoWorks software is actually written to handle a varying * number of triplets besides 16. I've chosen to not generalize this code * to handle cases where bytes 9 & 10 do not equal 16, since it seems like * wasted motion. Instead, I've checked this situation, then simply logged * an error message and continued as if it didn't matter. * * If a triplet slot contains strictly zeroes, then it should be skipped over * and the search for more triplets continued at the next triplet slot. * * Each triplet is in the form of a three 4-byte numbers * (so I sometimes refer to it as a "3-long triplet"). * * Each of the 4-byte numbers are in little endian order, where: * * - 1st 4 bytes are the triplet type, * - 2nd 4 bytes are the offset to the associated block * (from the start of the .sfw file), and * - 3rd 4 bytes are the length of the associated block. * * Example 1: The most important example follows... * * The Main Image block's triplet should have a form similar to the following: * * first last * byte byte * v v * D0 07 00 00 10 01 00 00 E7 4C 00 00 * ^^^^^^^^^^^ ^^^^^^^^^^^ * Will vary Will vary * depending depending * on how many on the * blocks image's * precede it. data. * * which includes: * * 1. 4 byte triplet type = 0x000007D0, ie, Main Image block. * 2. 4 byte offset to start of Main Image block. * This can vary depending on how many blocks precede it, * so it ideally should not be assumed or hardcoded. * 3. 4 byte length of Main Image block. * This is unique to each image. * It includes the entire length of the Main Image block, including: * * Main Image Prefix block of 0x10 (16) bytes, * * Main Image data of a varying # of bytes which contains: * - for SFW94 format (ie, compressed SFW94): * * the JFIF data of varying length, * - for SFW98 format: * * the SFW98 specific JPRS block of 0x10 (16) bytes, * * the JFIF data of varying length, * - for Uncompressed format (ie, uncompressed SFW94): * * the bitmap data of varying length. * * Main Image Suffix block of 0x10 (16) bytes. * * Example 2: The second most important example follows... * * The Main Image Preface block's triplet should have a form similar to * one of the following: * * first last * byte byte * v v * DA 07 00 00 CC 00 00 00 44 00 00 00 [this is most common case] * or * DA 07 00 00 07 01 00 00 44 00 00 00 * ^^^^^^^^^^^ ^^^^^^^^^^^ * Will vary Will vary * depending depending * on how many on the * blocks image's * precede it data. * (if any). * * which includes: * * 1. 4 byte triplet type = 0x000007DA, ie, Main Image Preface block. * 2. 4 byte offset to start of Main Image Preface block. * This can vary depending on how many blocks precede it, * so it ideally should not be assumed or hardcoded. * 3. 4 byte length of Main Image Preface block (always 0x00000044 = 68). * It includes the entire length of the Main Image block, including: * * Main Image Preface Prefix block of 0x10 (16) bytes, * * Main Image Preface data of 0x24 (36) bytes, * * Main Image Preface Suffix block of 0x10 (16) bytes. * * The Main Image Preface triplet will likely immediately precede the * Main Image triplet since the Main Image Preface block seems to always * immediately precede the Main Image block. * * Known .sfw header triplet types * ------------------------------- * * The following are the known .sfw header triplet types, grouped together * in several of the configurations that I've seen: * * - On one of my SFW94 files that were made in 1995 and 1996 and * probably came to me on the old 3 1/2" diskettes originally: * * 0x00000064 -- SFW_IMAGE_ID. [This disappeared from CDs in 2000.] * 0x000007DA -- SFW_MAIN_IMAGE_PREFACE. * 0x000007D0 -- SFW_MAIN_IMAGE. * 0x000000C8 -- SFW_TITLE. * 0x000004BA -- SFW_SMALL_THUMB_PREFACE. * 0x000004B0 -- SFW_SMALL_THUMB. * 0x00000C1C -- SFW_ALBUM_LIST. [This is apparent remnant of PHOTOPLS.] * 0x0000051E -- SFW_MEDIUM_THUMB_PREFACE. * 0x00000514 -- SFW_MEDIUM_THUMB. * 0x00000582 -- SFW_LARGE_THUMB_PREFACE. * 0x00000578 -- SFW_LARGE_THUMB. * 0x0000012C -- SFW_DESCRIPTION. * 0x00001270 -- SFW_END_DESCR. [This ends a Description.] * 0x00000456 -- SFW_TINY_THUMB_PREFACE. * 0x0000044C -- SFW_TINY_THUMB. * 0x00000000 -- SFW_PAD_TO_0XCC. * * - On a typical SFW98 file: * * 0x000007DA -- SFW_MAIN_IMAGE_PREFACE. * 0x000007D0 -- SFW_MAIN_IMAGE. * 0x000000C8 -- SFW_TITLE. * 0x00000456 -- SFW_TINY_THUMB_PREFACE. * 0x0000044C -- SFW_TINY_THUMB. * . * . * sometimes with other thumbnails (arranged in order of creation) * . * . * 0x00001770 -- SFW_ROTATION. [This triplet is extremely rare.] * 0x0000012C -- SFW_DESCRIPTION. * 0x00001270 -- SFW_END_DESCR. [This ends a Description.] * . * . * sometimes with other thumbnails (arranged in order of creation) * . * . * 0x00000000 -- SFW_PAD_TO_0XCC. * * - On my few examples of Uncompressed SFW94 (ie, SFW mangled .bmp) files: * * 0x000007DA -- SFW_MAIN_IMAGE_PREFACE. * 0x000007D0 -- SFW_MAIN_IMAGE. * 0x000000C8 -- SFW_TITLE. [Only if image added to album.] * 0x00000456 -- SFW_TINY_THUMB_PREFACE. [Only if image added to album.] * 0x0000044C -- SFW_TINY_THUMB. [Only if image added to album.] * 0x00000000 -- SFW_PAD_TO_0XCC. * * - On Seattle FilmWorks CDs dated 1998-09-22 thru 1999-07-29: * * 0x00000064 -- SFW_IMAGE_ID. * 0x000007DA -- SFW_MAIN_IMAGE_PREFACE. * 0x000007D0 -- SFW_MAIN_IMAGE. * 0x00000000 -- SFW_PAD_TO_0XCC. * * Notes: * 1. Bytes 11-12 of header were hex 01 00. * 2. Typical form of an Image Id was: "05294175 00 09/24/1998", or * "02006784 00 04/08/1999", or * " 00 07/23/1999", or * "10208831 00 07/30/1999", * without the double quotes. * 3. Quality was 65%. * 4. APP0 has major.minor vers=0.0 instead of expected values of 1.1 * in Main Image which begins at offset=0x0000015B. * 5. Huffman tables are *not* included. * 6. Main Image Suffix is in odd-ball "A3 13 00 00, length in prefix" * form. * * - On Seattle FilmWorks or PhotoWorks CDs dated 2000-02-23 thru 2001-05-14: * * 0x000007DA -- SFW_MAIN_IMAGE_PREFACE. * 0x000007D0 -- SFW_MAIN_IMAGE. * 0x00000456 -- SFW_TINY_THUMB_PREFACE. * 0x0000044C -- SFW_TINY_THUMB. * 0x000004BA -- SFW_SMALL_THUMB_PREFACE. * 0x000004B0 -- SFW_SMALL_THUMB. * 0x0000051E -- SFW_MEDIUM_THUMB_PREFACE. * 0x00000514 -- SFW_MEDIUM_THUMB. * 0x00000582 -- SFW_LARGE_THUMB_PREFACE. * 0x00000578 -- SFW_LARGE_THUMB. * 0x00000000 -- SFW_PAD_TO_0XCC. * * Notes: * 1. Bytes 11-12 of header were hex 02 00. * 2. Did not use Image Id. * 3. Quality was 90%. * 4. APP0 has major.minor vers=1.1 * in Main Image which begins at offset=0x00000120. * 5. Huffman tables *are* included. * 6. Main Image Suffix is in standard suffix format. * * - On SFW94 format .sfw files inside .pwp multi-image PhotoMail files * where that encapsulated .sfw file has bytes 11-12 of hex 01 00 * (where the byte 11-12 offset is measured from the SFW94A that begins * the encapsulated .sfw file): * * 0x00000064 -- SFW_IMAGE_ID. * 0x000007DA -- SFW_MAIN_IMAGE_PREFACE. * 0x000007D0 -- SFW_MAIN_IMAGE. * 0x00000000 -- SFW_PAD_TO_0XCC. * * Notes: * 1. Bytes 11-12 of header were hex 01 00. * 2. Typical form of an Image Id was: "12345678.01.10/05/1994", or * "15164329 00 06/21/2000", or * " 00 07/29/2000", or * " 00 09/11/2000", * without the double quotes, and where '.' represents '\0'. * 3. Quality was 65%. * 4. APP0 has major.minor vers=0.0 instead of expected values of 1.1 * in Main Image which begins at offset=0x0000015B. * 5. Huffman tables *are* included for the 1st Image Id example. * Huffman tables are *not* included for 2nd-4th Image Id examples. * 6. Main Image Suffix is in odd-ball "A3 13 00 00, length in prefix" * form. * 7. 2756x2756 pixels/meter. * 8. In the 2nd Image Id example, bytes 4-8 of the Image Id * correspond to the first 5 characters in the .sfw file's filename, * but there were only 1 out of 9 .pwp files like this. * 9. The image # portion of the Image Id, ie, bytes 10-11, * remain constant for every .pwp file. However, the * roll id and image # id can consistently, without exception, * be taken from the filespec that precedes the .sfw image * in the .pwp file. * 10. The date portion of the Image Id appears to be consistently * useful for dating the images. * * - On SFW94 format .sfw files inside .pwp multi-image PhotoMail files * where that encapsulated .sfw file has bytes 11-12 of hex 02 00 * (where the byte 11-12 offset is measured from the SFW94A that begins * the encapsulated .sfw file): * * 0x00000064 -- SFW_IMAGE_ID. * 0x000007DA -- SFW_MAIN_IMAGE_PREFACE. * 0x000007D0 -- SFW_MAIN_IMAGE. * 0x00001B58 -- SFW_PWP_END_THIS_SFW. * 0x00000000 -- SFW_PAD_TO_0XCC. * * Notes: * 1. Bytes 11-12 of header were hex 02 00. * 2. Typical form of an Image Id was: "12383596 06 12/17/1999", or * "13254158 02 03/06/2020", * without the double quotes. * 3. Quality was 85% or 95% (in the 2 .pwp files I've seen). * 4. APP0 has the standard major.minor vers=1.1 * in Main Image which begins at offset=0x0000015B. * 5. Huffman tables *are* included. * 6. Main Image Suffix is in standard suffix format. * 7. 0x0 pixels/meter. * 8. In both Image Id examples, bytes 4-8 of the Image Id * correspond to the first 5 characters in the .sfw file's filename. * 9. The image # portion of the Image Id, ie, bytes 10-11, * remain constant for every .pwp file. However, the * roll id and image # id can consistently, without exception, * be taken from the filespec that precedes the .sfw image * in the .pwp file. * 10. The date portion of the Image Id appears to be only sometimes * useful for dating the images (since 2020 was in the future). * The 2020 was probably a typo error, and most likely means * either 2000 or 2002. * 11. The SFW_PWP_END_THIS_SFW triplet (and its accompanying block * past the end of the SFW94 format JPEG image) was apparently added * as an alternate way to detect the end of each .sfw file inside * the .pwp files. * * - On SFW94 format .sfw files that have just been extracted by PhotoWorks * by opening .pwp multi-image PhotoMail files: * * 0x00000064 -- SFW_IMAGE_ID. * 0x000007DA -- SFW_MAIN_IMAGE_PREFACE. * 0x000007D0 -- SFW_MAIN_IMAGE. * 0x000000C8 -- SFW_TITLE. * 0x00000456 -- SFW_TINY_THUMB_PREFACE. * 0x0000044C -- SFW_TINY_THUMB. * 0x00000000 -- SFW_PAD_TO_0XCC. * * or: * * 0x00000064 -- SFW_IMAGE_ID. * 0x000007DA -- SFW_MAIN_IMAGE_PREFACE. * 0x000007D0 -- SFW_MAIN_IMAGE. * 0x00001B58 -- SFW_PWP_END_THIS_SFW. * 0x000000C8 -- SFW_TITLE. * 0x00000456 -- SFW_TINY_THUMB_PREFACE. * 0x0000044C -- SFW_TINY_THUMB. * 0x00000000 -- SFW_PAD_TO_0XCC. * * These are the same as the above two cases of .sfw files *inside* the * .pwp files, except in the just extracted .sfw files: * * 1. SFW_TITLE and a thumbnail's two triplets have been appended. * 2. Bytes 11-12 are always hex 02 00 (regardless what they were in * the .pwp file). * 3. All other items remain the same as they were in the .pwp file. * * - On SFW94 format .sfw files that have just been extracted by PhotoWorks * by opening .pwp multi-image PhotoMail files, then closed PhotoWorks * without saving in an album, then re-opened the just extracted .sfw file * individually by double-clicking in Windows Explorer, then saving * with PhotoWorks as SFW94 format .sfw -- thereby eliminating the * SFW_IMAGE_ID, SFW_TITLE, SFW_END_SFW_IN_PWP (if any), and thumbnail * triplets: * * 0x000007DA -- SFW_MAIN_IMAGE_PREFACE. * 0x000007D0 -- SFW_MAIN_IMAGE. * 0x00000000 -- SFW_PAD_TO_0XCC. * * - On SFW94 or SFW98 .sfw files saved by PhotoWorks v2.41 dated 2000-??-??, * but which have NOT been placed in any PhotoWorks album, * ie, have not had any thumbnails generated by PhotoWorks v2.41 software: * * 0x000007DA -- SFW_MAIN_IMAGE_PREFACE. * 0x000007D0 -- SFW_MAIN_IMAGE. * . * ...(no further documentation is planned for this case)... * . * 0x00000000 -- SFW_PAD_TO_0XCC. * * - On SFW94 or SFW98 .sfw files saved by PhotoWorks v2.?? dated 1999-??-??: * * 0x000007DA -- SFW_MAIN_IMAGE_PREFACE. * 0x000007D0 -- SFW_MAIN_IMAGE. * . * ...(no further documentation is planned for this case)... * . * 0x00000000 -- SFW_PAD_TO_0XCC. * * - On SFW94 or SFW98 .sfw files saved by PhotoWorks v2.?? dated 2000-??-??: * * 0x000007DA -- SFW_MAIN_IMAGE_PREFACE. * 0x000007D0 -- SFW_MAIN_IMAGE. * . * ...(no further documentation is planned for this case)... * . * 0x00000000 -- SFW_PAD_TO_0XCC. * * - On SFW94 .sfw files saved by SfwIndex dated 200?-??-?? * [ie, the SfwIndex.exe on the PhotoWorks CDs that only had .jpg images]: * * 0x000007DA -- SFW_MAIN_IMAGE_PREFACE. * 0x000007D0 -- SFW_MAIN_IMAGE. * . * ...(no further documentation is planned for this case)... * . * 0x00000000 -- SFW_PAD_TO_0XCC. * * - On an as-yet-unseen .sfw file with all known triplets: * * 0x00000064 -- SFW_IMAGE_ID. [This disappeared from CDs in 2000.] * 0x000007DA -- SFW_MAIN_IMAGE_PREFACE. * 0x000007D0 -- SFW_MAIN_IMAGE. * 0x00001B58 -- SFW_PWP_END_THIS_SFW. * 0x000000C8 -- SFW_TITLE. * 0x00000456 -- SFW_TINY_THUMB_PREFACE. * 0x0000044C -- SFW_TINY_THUMB. * 0x000004BA -- SFW_SMALL_THUMB_PREFACE. * 0x000004B0 -- SFW_SMALL_THUMB. * 0x00000C1C -- SFW_ALBUM_LIST. [This is apparent remnant of PHOTOPLS.] * 0x0000051E -- SFW_MEDIUM_THUMB_PREFACE. * 0x00000514 -- SFW_MEDIUM_THUMB. * 0x00000582 -- SFW_LARGE_THUMB_PREFACE. * 0x00000578 -- SFW_LARGE_THUMB. * 0x00001770 -- SFW_ROTATION. [This triplet is extremely rare.] * 0x0000012C -- SFW_DESCRIPTION. * 0x00001270 -- SFW_END_DESCR. * 0x00000000 -- SFW_PAD_TO_0XCC. * * Known .pwm header triplet types * ------------------------------- * * The following are the known .pwm header triplet types: * * - On SFW94 .pwm files saved by PhotoWorks v2.41: * * 0x0000125C -- SFW_PWM_NON_SFW_FILESPEC. * 0x000000C8 -- SFW_TITLE. * * or: * * 0x0000125C -- SFW_PWM_NON_SFW_FILESPEC. * 0x000000C8 -- SFW_TITLE. * 0x0000012C -- SFW_DESCRIPTION. * 0x00001270 -- SFW_END_DESCR. * * This is usually used when adding non-.sfw files to PhotoWorks albums. * * The Title and Description field have to be stored somewhere. * This is a way to store them even if the particular format * doesn't include some mechanism to store them (like .jpg does with * the JFIF Comment marker, IPTC data, or Exif data). And it is a way * to store all such non-.sfw files' Title and Description the same way. */
The following are all the known, unique triplet configurations which I've encountered on all my photos. Each set of "SFW triplets:" is listed during a single run of sfwwhichfmt or sfwinfo on a single .sfw file. The initial "SFW_" of each triplet name has been removed. The consequent list of unique SFW triplets is sorted.
SFW triplets: IMAGE_ID, MAIN_PREFACE, MAIN, PWP_END_THIS_SFW, TITLE, TINY_PREFACE, TINY. SFW triplets: IMAGE_ID, MAIN_PREFACE, MAIN, SMALL_PREFACE, SMALL, ALBUM_LIST, TITLE, MEDIUM_PREFACE, MEDIUM, LARGE_PREFACE, LARGE, DESCR, END_DESCR, TINY_PREFACE, TINY. SFW triplets: IMAGE_ID, MAIN_PREFACE, MAIN, SMALL_PREFACE, SMALL, ALBUM_LIST, TITLE, MEDIUM_PREFACE, MEDIUM, LARGE_PREFACE, LARGE, TINY_PREFACE, TINY, DESCR, END_DESCR. SFW triplets: IMAGE_ID, MAIN_PREFACE, MAIN, SMALL_PREFACE, SMALL, TITLE, ALBUM_LIST, LARGE_PREFACE, LARGE, DESCR, END_DESCR, MEDIUM_PREFACE, MEDIUM, TINY_PREFACE, TINY. SFW triplets: IMAGE_ID, MAIN_PREFACE, MAIN, SMALL_PREFACE, SMALL, TITLE, ALBUM_LIST, LARGE_PREFACE, LARGE, MEDIUM_PREFACE, MEDIUM, TINY_PREFACE, TINY, DESCR, END_DESCR. SFW triplets: IMAGE_ID, MAIN_PREFACE, MAIN, SMALL_PREFACE, SMALL, TITLE, ALBUM_LIST, MEDIUM_PREFACE, MEDIUM, LARGE_PREFACE, LARGE, DESCR, END_DESCR, TINY_PREFACE, TINY. SFW triplets: IMAGE_ID, MAIN_PREFACE, MAIN, SMALL_PREFACE, SMALL, TITLE, ALBUM_LIST, MEDIUM_PREFACE, MEDIUM, LARGE_PREFACE, LARGE, TINY_PREFACE, TINY, DESCR, END_DESCR. SFW triplets: IMAGE_ID, MAIN_PREFACE, MAIN, SMALL_PREFACE, SMALL, TITLE, ALBUM_LIST, MEDIUM_PREFACE, MEDIUM, LARGE_PREFACE, LARGE, TINY_PREFACE, TINY. SFW triplets: IMAGE_ID, MAIN_PREFACE, MAIN, TITLE, MEDIUM_PREFACE, MEDIUM, DESCR, END_DESCR, TINY_PREFACE, TINY, SMALL_PREFACE, SMALL. SFW triplets: IMAGE_ID, MAIN_PREFACE, MAIN, TITLE, MEDIUM_PREFACE, MEDIUM, TINY_PREFACE, TINY, SMALL_PREFACE, SMALL. SFW triplets: IMAGE_ID, MAIN_PREFACE, MAIN, TITLE, SMALL_PREFACE, SMALL, ALBUM_LIST, LARGE_PREFACE, LARGE, MEDIUM_PREFACE, MEDIUM, TINY_PREFACE, TINY, DESCR, END_DESCR. SFW triplets: IMAGE_ID, MAIN_PREFACE, MAIN, TITLE, SMALL_PREFACE, SMALL, ALBUM_LIST, LARGE_PREFACE, LARGE, MEDIUM_PREFACE, MEDIUM, TINY_PREFACE, TINY. SFW triplets: IMAGE_ID, MAIN_PREFACE, MAIN, TITLE, SMALL_PREFACE, SMALL, ALBUM_LIST, MEDIUM_PREFACE, MEDIUM, LARGE_PREFACE, LARGE, DESCR, END_DESCR, TINY_PREFACE, TINY. SFW triplets: IMAGE_ID, MAIN_PREFACE, MAIN, TITLE, SMALL_PREFACE, SMALL, ALBUM_LIST, MEDIUM_PREFACE, MEDIUM, LARGE_PREFACE, LARGE, TINY_PREFACE, TINY, DESCR, END_DESCR. SFW triplets: IMAGE_ID, MAIN_PREFACE, MAIN, TITLE, SMALL_PREFACE, SMALL, ALBUM_LIST, MEDIUM_PREFACE, MEDIUM, LARGE_PREFACE, LARGE, TINY_PREFACE, TINY. SFW triplets: IMAGE_ID, MAIN_PREFACE, MAIN, TITLE, TINY_PREFACE, TINY, DESCR, END_DESCR, MEDIUM_PREFACE, MEDIUM. SFW triplets: IMAGE_ID, MAIN_PREFACE, MAIN, TITLE, TINY_PREFACE, TINY, DESCR, END_DESCR. SFW triplets: IMAGE_ID, MAIN_PREFACE, MAIN, TITLE, TINY_PREFACE, TINY, MEDIUM_PREFACE, MEDIUM. SFW triplets: IMAGE_ID, MAIN_PREFACE, MAIN, TITLE, TINY_PREFACE, TINY. SFW triplets: IMAGE_ID, MAIN_PREFACE, MAIN. SFW triplets: MAIN_PREFACE, MAIN, MEDIUM_PREFACE, MEDIUM, TINY_PREFACE, TINY. SFW triplets: MAIN_PREFACE, MAIN, TINY_PREFACE, TINY, SMALL_PREFACE, SMALL, MEDIUM_PREFACE, MEDIUM, LARGE_PREFACE, LARGE, TITLE, DESCR, END_DESCR. SFW triplets: MAIN_PREFACE, MAIN, TINY_PREFACE, TINY, SMALL_PREFACE, SMALL, MEDIUM_PREFACE, MEDIUM, LARGE_PREFACE, LARGE, TITLE. SFW triplets: MAIN_PREFACE, MAIN, TINY_PREFACE, TINY, SMALL_PREFACE, SMALL, MEDIUM_PREFACE, MEDIUM, LARGE_PREFACE, LARGE. SFW triplets: MAIN_PREFACE, MAIN, TINY_PREFACE, TINY, TITLE, DESCR, END_DESCR. SFW triplets: MAIN_PREFACE, MAIN, TINY_PREFACE, TINY, TITLE, MEDIUM_PREFACE, MEDIUM. SFW triplets: MAIN_PREFACE, MAIN, TINY_PREFACE, TINY, TITLE. SFW triplets: MAIN_PREFACE, MAIN, TINY_PREFACE, TINY. SFW triplets: MAIN_PREFACE, MAIN, TITLE, LARGE_PREFACE, LARGE, DESCR, END_DESCR, MEDIUM_PREFACE, MEDIUM, SMALL_PREFACE, SMALL, TINY_PREFACE, TINY. SFW triplets: MAIN_PREFACE, MAIN, TITLE, LARGE_PREFACE, LARGE, MEDIUM_PREFACE, MEDIUM, DESCR, END_DESCR, SMALL_PREFACE, SMALL, TINY_PREFACE, TINY. SFW triplets: MAIN_PREFACE, MAIN, TITLE, LARGE_PREFACE, LARGE, MEDIUM_PREFACE, MEDIUM, SMALL_PREFACE, SMALL, DESCR, END_DESCR, TINY_PREFACE, TINY. SFW triplets: MAIN_PREFACE, MAIN, TITLE, MEDIUM_PREFACE, MEDIUM, DESCR, END_DESCR, SMALL_PREFACE, SMALL, TINY_PREFACE, TINY. SFW triplets: MAIN_PREFACE, MAIN, TITLE, MEDIUM_PREFACE, MEDIUM, DESCR, END_DESCR, TINY_PREFACE, TINY, LARGE_PREFACE, LARGE, SMALL_PREFACE, SMALL. SFW triplets: MAIN_PREFACE, MAIN, TITLE, MEDIUM_PREFACE, MEDIUM, DESCR, END_DESCR, TINY_PREFACE, TINY, SMALL_PREFACE, SMALL. SFW triplets: MAIN_PREFACE, MAIN, TITLE, MEDIUM_PREFACE, MEDIUM, DESCR, END_DESCR, TINY_PREFACE, TINY. SFW triplets: MAIN_PREFACE, MAIN, TITLE, MEDIUM_PREFACE, MEDIUM, LARGE_PREFACE, LARGE, DESCR, END_DESCR, TINY_PREFACE, TINY, SMALL_PREFACE, SMALL. SFW triplets: MAIN_PREFACE, MAIN, TITLE, MEDIUM_PREFACE, MEDIUM, SMALL_PREFACE, SMALL, DESCR, END_DESCR, TINY_PREFACE, TINY. SFW triplets: MAIN_PREFACE, MAIN, TITLE, MEDIUM_PREFACE, MEDIUM, SMALL_PREFACE, SMALL, TINY_PREFACE, TINY, DESCR, END_DESCR. SFW triplets: MAIN_PREFACE, MAIN, TITLE, MEDIUM_PREFACE, MEDIUM, SMALL_PREFACE, SMALL, TINY_PREFACE, TINY. SFW triplets: MAIN_PREFACE, MAIN, TITLE, MEDIUM_PREFACE, MEDIUM, TINY_PREFACE, TINY, DESCR, END_DESCR, SMALL_PREFACE, SMALL. SFW triplets: MAIN_PREFACE, MAIN, TITLE, MEDIUM_PREFACE, MEDIUM, TINY_PREFACE, TINY, DESCR, END_DESCR. SFW triplets: MAIN_PREFACE, MAIN, TITLE, MEDIUM_PREFACE, MEDIUM, TINY_PREFACE, TINY, SMALL_PREFACE, SMALL, DESCR, END_DESCR. SFW triplets: MAIN_PREFACE, MAIN, TITLE, MEDIUM_PREFACE, MEDIUM, TINY_PREFACE, TINY, SMALL_PREFACE, SMALL. SFW triplets: MAIN_PREFACE, MAIN, TITLE, MEDIUM_PREFACE, MEDIUM, TINY_PREFACE, TINY. SFW triplets: MAIN_PREFACE, MAIN, TITLE, SMALL_PREFACE, SMALL, DESCR, END_DESCR, TINY_PREFACE, TINY. SFW triplets: MAIN_PREFACE, MAIN, TITLE, SMALL_PREFACE, SMALL, MEDIUM_PREFACE, MEDIUM, DESCR, END_DESCR, TINY_PREFACE, TINY. SFW triplets: MAIN_PREFACE, MAIN, TITLE, SMALL_PREFACE, SMALL, MEDIUM_PREFACE, MEDIUM, TINY_PREFACE, TINY, DESCR, END_DESCR. SFW triplets: MAIN_PREFACE, MAIN, TITLE, SMALL_PREFACE, SMALL, TINY_PREFACE, TINY, DESCR, END_DESCR. SFW triplets: MAIN_PREFACE, MAIN, TITLE, SMALL_PREFACE, SMALL, TINY_PREFACE, TINY, MEDIUM_PREFACE, MEDIUM, DESCR, END_DESCR. SFW triplets: MAIN_PREFACE, MAIN, TITLE, SMALL_PREFACE, SMALL, TINY_PREFACE, TINY, MEDIUM_PREFACE, MEDIUM. SFW triplets: MAIN_PREFACE, MAIN, TITLE, SMALL_PREFACE, SMALL, TINY_PREFACE, TINY. SFW triplets: MAIN_PREFACE, MAIN, TITLE, SMALL_PREFACE, SMALL. SFW triplets: MAIN_PREFACE, MAIN, TITLE, TINY_PREFACE, TINY, DESCR, END_DESCR, SMALL_PREFACE, SMALL. SFW triplets: MAIN_PREFACE, MAIN, TITLE, TINY_PREFACE, TINY, DESCR, END_DESCR. SFW triplets: MAIN_PREFACE, MAIN, TITLE, TINY_PREFACE, TINY, MEDIUM_PREFACE, MEDIUM, DESCR, END_DESCR. SFW triplets: MAIN_PREFACE, MAIN, TITLE, TINY_PREFACE, TINY, ROTATION, DESCR, END_DESCR. SFW triplets: MAIN_PREFACE, MAIN, TITLE, TINY_PREFACE, TINY, ROTATION. SFW triplets: MAIN_PREFACE, MAIN, TITLE, TINY_PREFACE, TINY, SMALL_PREFACE, SMALL, DESCR, END_DESCR. SFW triplets: MAIN_PREFACE, MAIN, TITLE, TINY_PREFACE, TINY, SMALL_PREFACE, SMALL. SFW triplets: MAIN_PREFACE, MAIN, TITLE, TINY_PREFACE, TINY. SFW triplets: MAIN_PREFACE, MAIN, TITLE. SFW triplets: MAIN_PREFACE, MAIN.
The following are all the known, unique triplet configurations from .pwm files.
SFW triplets: PWM_NON_SFW_FILESPEC, TITLE. SFW triplets: PWM_NON_SFW_FILESPEC, TITLE, DESCRIPTION, END_DESCR.
Hope this helps in your understanding of the Seattle FilmWorks / PhotoWorks .sfw and .pwm file formats.