Probably the most useful program for accurately detecting the .sfw, .pwp, .pwm, and .alb Seattle FilmWorks / PhotoWorks file formats is Marco Pontello's TrID file identifier utility in combination with jonesrh's Seattle FilmWorks oriented TrID definitions, either the "lite" version of the definitions provided with mark0.net's TrID defs, or the "full-blown" version of the Seattle FilmWorks / PhotoWorks TrID definitions inside: jonesrh_sfw_trid_defs.zip. Both the "lite" and the "full-blown" TrID definitions have been successful at identifying every one of my 3200+ unique Seattle FilmWorks / PhotoWorks files.
Even though the jonesrh utilities sfwwhichfmt, sfwinfo, and sfw98jpgtran are slightly more accurate than TrID at detecting all the Seattle FilmWorks / PhotoWorks file formats and even though they are much better than TrID at identifying the location of format errors in Seattle FilmWorks / PhotoWorks files, TrID is actually a more useful, general purpose utility for the simple reason that it can also detect over 5000 other file formats!
These 3 (slightly more accurate) utilities -- sfwwhichfmt, sfwinfo, and sfw98jpgtran -- are described in: the .sfw conversion portal's Tools to detect .sfw file formats section, and/or the portal's Future jonesrh SFW98 format .sfw to .jpg converter section.
Some other (usually less accurate) alternatives to the jonesrh TrID definitions and sfwwhichfmt, sfwinfo, and sfw98jpgtran are described in: Alternatives for .sfw file format detection. Most of them involve searching for one or more of the SFW oriented strings (eg, SFW98A, SFW98, SFWF, SFW94A, SFW94, SFW93A, SFW9, etc).
As of 2013-02-11, the online TrID facility will work very well to recognize variations of the Seattle FilmWorks / PhotoWorks .sfw, .pwp, .pwm, and .alb file formats.
As of 2013-02-11, the TrID desktop software -- both the TrID command line utility and the TrIDNet GUI -- will also work very well to recognize variations of the Seattle FilmWorks / PhotoWorks files, even with the "lite" versions of the Seattle FilmWorks / PhotoWorks TrID definitions that are provided in TrID's definition downloads: triddefs.zip and triddefs_xml.rar.
Consequently, you no longer have to follow the procedures below to obtain accurate identification of Seattle FilmWorks / PhotoWorks files using TrID. The definitions distributed by mark0.net should accurately identify those files.
But if you do download the TrID desktop software, then merge in my "full-blown" Seattle FilmWorks oriented TrID definitions to TrID's distributed definitions, you'll enable stricter signature checking, decrease the (admittedly remote) possibility of any false positives, and you'll have available some more detailed explanations of the file formats. These "full-blown" defs can co-exist with, but take precedence over, the "lite" Seattle FilmWorks / PhotoWorks defs that are distributed with TrID at mark0.net.
What I'd suggest is downloading the following TrID oriented .zip and .rar files indicated by the bolded items on the TrID pages listed:
from the TrID - File Identifier page:
from the TrIDNet - File Identifier page:
from the TrIDScan - Patterns scanner page:
Also, download my "full-blown" Seattle FilmWorks oriented TrID XML definitions for .sfw, .pwp, .pwm, and .alb files: jonesrh_sfw_trid_defs.zip.
Expand all of the downloads -- except for the distributed TrID XML defs (triddefs_xml.rar) and my "full-blown" TrID XML definitions (jonesrh_sfw_trid_defs.zip) -- into a folder. Let's call the folder \TrID for the sake of an example.
The TrID XML defs (triddefs_xml.rar) contains all the distributed TrID definitions in .xml format. Expand that .rar file into a folder directly underneath the folder containing all the TrID executables. For example, let's expand triddefs_xml.rar so that all its .xml files are in \TrID\defs. Then expand my Seattle FilmWorks oriented TrID XML definitions from jonesrh_sfw_trid_defs.zip into that same \TrID\defs folder.
Delete the \TrID\defs\TrIDDefList.TRS file.
Run the TrIDNet GUI (TrIDNet.exe). On the bottom of the TrIDNet window, in the section with the "Rescan Defs" box, select Browse. Locate the \TrID\defs folder of our example. My 8 (full-blown) Seattle FilmWorks oriented TrID XML definitions have the following names:
There should be 5019 (or more) other definitions if you have the latest TrID definitions.
Double-click any of the .xml files in that folder, preferably one of those named above (just to make sure you are including my "full-blown" TrID definitions also). This will hopefully trigger TrIDNet to do a Rescan Defs. It should take anywhere from 5-60 seconds while all the 5000+ .xml files are read. Just wait until you see the words:
where the 5027 will likely be even higher by the time you read this. When that phrase appears, TrIDNet has finished rebuilding its definitions file, TrIDDefList.TRS.
If instead TrIDNet returns within <= 5 seconds after double-clicking one of the .xml files in that folder, then you might want to consider clicking on Rescan Defs and wait until all the 5000+ .xml files are read, a brief Saving definitions... message appears, then you immediately see the words:
where 5nnn is 5027 or higher.
You can now use the top portion of the TrIDNet window to browse for files to analyze. TrIDNet will analyze one file at a time. If you just have a few files to analyze, then you can just go ahead and do it all with TrIDNet, and just bypass reading the rest of this page.
However, if you have a lot of files to analyze, then I suggest you go ahead and re-build the definitions file (triddefs.trd) which the TrID command line utility uses. That way you'll be able to use the wildcarding facility of the TrID command line utility.
To rebuild triddefs.trd, open a command line windows using Start / Run / cmd / OK, then cd to the directory containing the .xml files, then, as shown in the bluish-gray sections below, run TrIDDefsPack.exe, followed by copying the new .trd (and .trs) files back into the \Trid folder where the executables reside.
In my case, I always unpack the .xml files into a folder which is one folder below the folder containing the trid.exe, TrIDNet.exe, TrIDDefsPack.exe, tridupdate.py (and tridscan.exe, if you downloaded that also). Calling the executable folder \TrID and calling the .xml folder \TrID\defs, then I might run TrIDDefsPack via:
This takes about 20-90 seconds. Then continuing in order to copy the 2 definition files -- one created by TrIDNet and the other just created by TrIDDefsPack -- up one folder level so they are in the same folder as the TrID executables.
Now you can run the TrID command line utility from the \TrID folder. Here's an example in which I've rearranged the order that the files were listed by TrID in order to match the list of .xml files listed above, ie, the list that begins with alb-sfw-alb-10dd94.trid.xml and ends with sfw-sfw98a.trid.xml. Note that there are no lines corresponding to the sfw-sfw93a.trid.xml definition, since I don't yet have such a valid SFW93A format .sfw test case to analyze.
I used the -r:2 switch above in order to demonstrate how the "full-blown" vs. the "lite" definitions will display. The 1st line for each file is from the more extensive, "full-blown" def. The 2nd line for each file is from the "lite" def.
Another instructive example is to use the -v switch. I'll leave that as an exercise for the reader.
With the above "full-blown" Seattle FilmWorks definitions, you can trust TrID to do an extremely good job of analyzing all the listed Seattle FilmWorks / PhotoWorks file formats (.sfw, .pwp, .pwm, .alb). With the mark0.net distributed TrID definitions that have the "lite" Seattle FilmWorks defs, you can trust TrID to do a very good job of analyzing all those formats.
Marco asked me to develop more generic definitions for inclusion in the distributed TrID definitions, so I came up with these 7 ("lite" version) Seattle FilmWorks oriented TrID XML defs in which the signatures are reduced to their core essentials and the <Rem> field has much less detail:
The use of pwm-sfw.trid.xml and sfw-sfw94-bmp.trid.xml above is required to avoid the generic sfw-sfw94.trid.xml from generating false positives for PWM and Uncompressed SFW94.
These "lite" definition versions are (as of 2013-02-11) distributed in the full set of TrID definitions available at mark0.net. I don't plan to distribute them here.
These "lite" versions seem to work (almost) as well as my "full-blown" versions. They should be adequate for most purposes. But you have to keep in mind that with these "lite" versions, the SFW94 format images are listed as:
The first case above is to be understood as compressed SFW94. It is not expressly stated simply because it is not expressly detected due to the nature of these "lite" definitions being as generic as possible, yet still attempting to maintain a high level of accurate identification.
Contrast those "lite" file format listings above with the listings below from the "full-blown" TrID defs (where all the files beginning with the SFW94A signature are evaluated very precisely):
If the jonesrh "full-blown" defs had not been merged with the defs distributed with TrID, then the output would instead look similar to the following:
I don't suggest using the -r:2 (or higher value) switch for the mark0.net distributed defs when trying to identify Seattle FilmWorks / PhotoWorks files, since the 2nd or subsequent lines might confusingly suggest some other format.