home *** CD-ROM | disk | FTP | other *** search
/ PC Open 18 / pcopen18_giallo.iso / Msdos / GfxCheck / GFXCHK.DOC < prev    next >
Encoding:
Text File  |  1997-05-05  |  23.8 KB  |  526 lines

  1.  
  2.                   ┌──────────────────────────────────────────┐
  3.                   │             G F X C h e c k              │
  4.                   │  GIF/JPEG/BMP Graphics Checking Utility  │
  5.                   └──────────────────────────────────────────┘
  6.  
  7.  
  8.                                   Version 1.23
  9.                      (c) Copyright 1997 - ZT Technologies
  10.  
  11.  
  12.  
  13.                              Techical Support:
  14.  
  15.                              Herbert Bushong 
  16.                              Blackbeard's BBS
  17.                              318-468-3385  (V34+)
  18.  
  19. ┌────────────────────┐
  20. │  1. Introduction:  │
  21. └────────────────────┘
  22.  
  23. GFXCheck was developed to provide the cyberspace community with a means of
  24. validating GIF, JPEG and BMP graphics files without the need for actually
  25. firing up a graphics file viewer.  While there are similar utilities available
  26. for GIF files, they are generally dated, run only under DOS and do nothing to
  27. validate JPEG (currently the leading graphics file format technology) or BMP
  28. files.
  29.  
  30. GFXCheck was designed to address these specific issues.  While GFXCheck
  31. obviously cannot determine the subjective quality of an image, it can detect
  32. many common defects and corruption that can occur in graphic files being
  33. transferred by a variety of media.
  34.  
  35.  
  36. ┌────────────────────────────┐
  37. │  2. Features of GFXCheck:  │
  38. └────────────────────────────┘
  39.  
  40.     ∙ Native versions for both 16-bit DOS and 32-bit OS/2!
  41.     ∙ Automatically identifies (by signature) GIF87a and GIF89a GIF files, 
  42.       JFIF 1.x format JPEG files, and Windows, OS/2 1.x and OS/2 2.x format BMP
  43.       files.
  44.     ∙ Validates graphics files for proper format and construction (e.g. invalid
  45.       structure, unexpected end of file, etc.).
  46.     ∙ Trims any extraneous bytes from the end of the graphic file.
  47.     ∙ Rejection of graphics files based upon image parameters (e.g. width,
  48.       height and/or number of colors).  These can be set individually for GIF,
  49.       JPEG and BMP graphic formats.
  50.     ∙ Logging of existing GIF and JPEG comments.
  51.     ∙ User-defined stripping and/or insertion of GIF and JPEG comments.
  52.     ∙ User-defined disposition of defective or rejected graphic files.
  53.     ∙ Updates BBS file descriptions (PCBoard-format or similar) with a user-
  54.       configurable information string.
  55.     ∙ User-selectable process logging to a disk file.
  56.     ∙ Written completely in C for optimal speed, using Watcom C/C++ 11.0.
  57.  
  58.  
  59. ┌──────────────────────────────────────────────────────────┐
  60. │  3. Files Included in the GFXCheck Distribution Archive  │
  61. └──────────────────────────────────────────────────────────┘
  62.  
  63.     GFXCHK.EXE      GFXCheck file checker program (16-bit DOS).
  64.     GFXCHK2.EXE     GFXCheck file checker program (32-bit OS/2).
  65.     GFXCHK.DOC      This file.
  66.     SAMPLE.CFG      Sample configuration file.
  67.     GIF.TPL         Sample GIF comment template.
  68.     JPEG.TPL        Sample JPEG comment template.
  69.     SUPPORT.DOC     List of authorized support sites for my shareware.
  70.     HISTORY.DOC     GFXCheck revision history in reverse order.
  71.     REGISTER.FRM    Registration form for GFXCheck and other software.
  72.     FILE_ID.DIZ     Internal description file.
  73.  
  74. When you unzip the distribution archive, you should see my PKZIP authenticity
  75. verification stamp, and a '-AV' after every file in the archive:
  76.  
  77.     # PNP757    ZT Technologies
  78.  
  79. If there are any files missing or added, or the -AV stamp is missing, the
  80. archive has been tampered with.
  81.  
  82.  
  83. ┌───────────────────────────┐
  84. │  4. Program Requirements  │
  85. └───────────────────────────┘
  86.  
  87. To the best of my knowledge, this program will run on most any machine, as it
  88. uses no specific hardware or operating system features.  I have personally
  89. tested GFXCheck under OS/2 Warp 3.0, DOS 6.20, DESQview and Windows for
  90. Workgroups 3.11, although I don't expect problems under other configurations
  91. given they conform to the general requirements of GFXCheck.
  92.  
  93. GFXCheck requires DOS 3.x and higher (or OS/2 2.0 and higher for GFXCheck/2),
  94. as it uses DOS SHARE-compatible file reads and writes.  GFXCheck's memory
  95. requirements are very small (less than 100K) and should run merrily under most
  96. any upload or file processing software, in many cases without any need for
  97. swapping.
  98.  
  99.  
  100. ┌───────────────────┐
  101. │  5. Registration  │
  102. └───────────────────┘
  103.  
  104. GFXCheck is not free; nor is GFXCheck crippled to force registration.  GFXCheck
  105. is fully functional, and will always remain so.  The only variation with the
  106. registered copies is no time delay and beg message.
  107.  
  108. Why register?  Besides a clean conscience, you will get a registration key
  109. that will work for all future versions of GFXCheck, and will remove the delay
  110. and beg message at the end of execution.
  111.  
  112. The registration fee for your unique key is $20 for hobbyist use.  The
  113. registration fee for commercial use, defined if you use GFXCheck in the course
  114. of a commercial business or for profit (e.g. CD-ROM production, more than 10
  115. BBS nodes, etc.), is $30.  Refer to the file REGISTER.FRM for more registration
  116. information.  Please print the file REGISTER.FRM and fill it out.  You can
  117. print out the form by issuing the following command from the DOS prompt:
  118.  
  119.         TYPE REGISTER.FRM > PRN
  120.  
  121.  
  122. ┌───────────────────────────────────────┐
  123. │  6. License, Warranty and Disclaimer  │
  124. └───────────────────────────────────────┘
  125.  
  126. I'll keep this part short and sweet, and dispense with the legal-ese:
  127.  
  128.     License:  You are allowed to use GFXCheck for 30 days, after which you must
  129.         either register GFXCheck or stop using it completely.  Decompiling,
  130.         disassembly or any other form of reverse-engineering GFXCheck for any
  131.         purpose is prohibited.  GFXCheck registration is a license for your use
  132.         of GFXCheck; I retain ownership of the software.  A single registration
  133.         applies to a single enterprise (e.g. BBS, CD-ROM mastering company)
  134.         regardless of the number of computers used.  If you run two or more
  135.         distinct BBS systems on the same computer (with different names), you
  136.         require two or more GFXCheck registrations.  GFXCheck registrations are
  137.         not transferrable; you cannot sell your registration to another person.
  138.  
  139.     Warranty:  There isn't one. The only thing I'll guarantee is that GFXCheck
  140.         will take up disk space, and will disappear when deleted.
  141.  
  142.     Disclaimer:  I'm not responsible for anything bad that happens. GFXCheck
  143.         works for me, but I cannot be held responsible for it not working on
  144.         your computer or doing any damage to hardware or software.
  145.  
  146. If these conditions aren't agreeable with you, then the best thing to do is
  147. delete GFXCheck right now.  I'll do my best to help any user (registered or
  148. not) that wants to use GFXCheck, and I'll act on bug reports quickly, but I
  149. simply cannot and will not be responsible for anything bad, like lost data,
  150. disk crashes, or whatever else you can think of.
  151.  
  152.  
  153. ┌───────────────────┐
  154. │  7. Installation  │
  155. └───────────────────┘
  156.  
  157. GENERAL INSTALLATION:
  158. ─────────────────────
  159. Make a subdirectory on your hard drive.  For the purposes of this document,
  160. we'll call it "D:\GFXCHK".  Unarchive the GFXCheck distribution archive into
  161. this subdirectory.  You've more than likely already made it this far, if you're
  162. reading this file. <grin>
  163.  
  164. The GFXCheck program opens a few files at once for various reasons.  I would
  165. recommend that you have a minimum of FILES=30 per node in your system
  166. CONFIG.SYS file for a DOS single-node system, since GFXCheck is often run in
  167. conjunction with your BBS and upload or file processing software.
  168.  
  169. If you are running under a DOS network or a multitasking operating system, you
  170. should already have DOS's SHARE.EXE loaded.  You must have SHARE loaded (or
  171. running an operating system that has SHARE functionality, such as OS/2 or
  172. Novell) in order to take advantage of the file sharing and locking methods used
  173. by the GFXCheck program to prevent data loss.  (If you are running a single-
  174. node system without a multitasker, SHARE is not needed).
  175.  
  176. Edit the sample configuration file to suit your needs.  Proper configuration
  177. will require you to refer to this section and the section titled
  178. "Configuration", which has an in-depth explanation of each configuration
  179. parameter and its function.  It might be wise to fire up your printer for this
  180. document.
  181.  
  182. Note that for the GFXCheck program, you can obtain a limited program syntax
  183. screen simply by executing the program without any command-line switches.
  184.  
  185. COMMAND-LINE SWITCHES:
  186. ──────────────────────
  187. As a bare minimum, GFXCheck requires two command line parameters: one for the
  188. GFXCheck's configuration file (-C switch) and another for the graphic file(s)
  189. to test (-F switch).  For example, the following command lines are both valid:
  190.  
  191.     D:\GFXCHK\GFXCHK.EXE -Cd:\gfxchk\gfxchk.cfg -Fd:\path\graphic.ext
  192.     GFXCHK.EXE -Cgfxchk.cfg -Fd:\path\graphic.ext
  193.  
  194. The second command line will work if your GFXCheck subdirectory is part of your
  195. system's PATH.  In order to find the configuration file, GFXCheck will first
  196. try to open the configuration file as passed.  If that fails, GFXCheck will
  197. then try to open the same file in the same directory that GFXCHK.EXE is in
  198. (unless an explicit path has been passed on the command line as in the first
  199. example).
  200.  
  201. If you want GFXCheck to update file descriptions, the corresponding description
  202. file must be passed on the command line using the -D switch:
  203.  
  204.     GFXCHK.EXE -Cgfxchk.cfg -Fd:\path\graphic.ext -Dd:\path\desc.lst
  205.  
  206. Note that GFXCheck will modify only descriptions for graphic file(s) that it
  207. has processed; descriptions for any other files will be retained without
  208. change.  Further, if no matching description is found, GFXCheck will not add a
  209. description; it will log the fact that a description is missing in its log
  210. file.
  211.  
  212. GFXCheck by default will check all graphics files passed to it.  If you only
  213. want to extract image parameters and skip validation, add the -I command line
  214. switch.  This will greatly speed processing if you do not need to perform any
  215. checking at that time.  For example, if you only want to update your BBS
  216. descriptions, this switch would make the process quicker.  Do not use this
  217. switch under normal testing conditions in your file/upload processor.
  218.  
  219. The -R command line switch forces GFXCheck to restore the graphic file date and
  220. time stamps.  By default, if GFXCheck updates the file (by trimming extraneous
  221. bytes), the date will be changed to reflect the date of modification.
  222.  
  223. Lastly, GFXCheck normally sounds a beep on error.  If this is not desired, the
  224. -Q switch will silence GFXCheck during operation.
  225.  
  226. INSTALLATION INTO YOUR BBS UPLOAD PROCESSOR:
  227. ────────────────────────────────────────────
  228. GFXCheck is designed to operate like most any other file checker, such as virus
  229. checkers, etc..  Generally, it will operate on a subdirectory of files that
  230. have already been extracted by the upload processing system or will be passed a
  231. specific graphic file to check.
  232.  
  233. The best application for GFXCheck is to be executed as a graphic file test
  234. utility where just graphic files are passed to it by the calling program, e.g.:
  235.  
  236.     D:\GFXCHK\GFXCHK.EXE -Cd:\gfxchk\gfxchk.cfg -Fd:\path\graphic.ext
  237.  
  238. In the case of UpLoadProcessor (2.10 or higher), the command line is simply:
  239.  
  240.     D:\GFXCHK\GFXCHK.EXE -Cgfxchk.cfg -F@FILE@
  241.  
  242. In the absence of a feature to execute checkers solely for graphic files in the
  243. calling program, GFXCheck can be configured similar to a virus-scanning
  244. program, since at that point in time the files are already extracted from the
  245. upload being processed.  Depending upon how your upload processor operates, the
  246. command lines and configuration can be different.
  247.  
  248. If your upload processor executes the file testers from the directory where the
  249. files are located (UpLoadProcessor is an example of this behavior, although it
  250. can pass specific graphic files to GFXCheck), the command line can be simply:
  251.  
  252.     D:\GFXCHK\GFXCHK.EXE -Cd:\gfxchk\gfxchk.cfg -F*.*
  253.  
  254. GFXCheck also supports list files when preceeded by a '@' character (e.g.
  255. -F@FILE.LST) for the file command-line switch parameter.  The list file must
  256. have one filespec per line, standard DOS wildcards are permitted.  Any line in
  257. the list starting with a semicolon will be considered a comment and skipped.
  258.  
  259. Note that if you use GFXCheck in this manner, you should turn off the
  260. FAIL_UNKNOWN configuration switch to prevent unknown (non-graphic) format files
  261. from triggering a failure.
  262.  
  263.  
  264. ┌────────────────────┐
  265. │  8. Configuration  │
  266. └────────────────────┘
  267.  
  268. The sample configuration file included in the distribution archive is heavily
  269. commented, but some additional information is provided below:
  270.  
  271. LOG_FILE
  272.     GFXCheck will write process and error information to a log file, if
  273.     desired.  This parameter is the path/filename of the log file for GFXCheck
  274.     to record its activities.  Comment out if you don't want any disk logging.
  275.     If you need support for GFXCheck, the first thing you will have to have is
  276.     a log file, so it is recommmended that you configure one.
  277.  
  278. LOG_MODE
  279.     Assuming the a log file is configured, GFXCheck can write two types of
  280.     logs:  VERBOSE and TERSE.  TERSE logs little more than pass and fail, while
  281.     VERBOSE offers more detailed information on the files being checked.
  282.  
  283. GOOD_ERRLEV
  284.     The errorlevel that GFXCheck is to return to the operating system if no
  285.     errors were found in any file processed.  If commented out, this value will
  286.     default to 0, since most upload and file processors assume non-zero
  287.     errorlevels to be program execution errors, not information.  This value
  288.     must be between 0 and 255, inclusive.
  289.  
  290. FAIL_ERRLEV
  291.     The errorlevel that GFXCheck is to return to the operating system if one or
  292.     more graphic files checked is defective.  This value defaults to 1.  This
  293.     value must be between 0 and 255, inclusive, or -1.  If -1 is specified, the
  294.     GFXCheck error code of the file is returned to the operating system.  Note
  295.     that if multiple files are processed, the result code of the last file
  296.     processed will be returned (which could be 0 if no error was encountered).
  297.     It is recommended that a fixed failure errorlevel be used unless you ensure
  298.     GFXCheck processes files individually, where the return code/errorlevel is
  299.     meaningful.
  300.  
  301. FAIL_UNKNOWN
  302.     GFXCheck will normally fail a non-graphic file as an unknown format.
  303.     Setting this parameter to NO will prevent this.  This can be useful for
  304.     third party processors that pass an entire directory of various files to
  305.     file checking programs without specifically delineating graphic files.
  306.  
  307. DISPOSITION
  308.     This parameter defines how GFXCheck dispositions defective graphic files.
  309.     Three options are available:  NONE (if GFXCheck is to leave the defective
  310.     file alone), RENAME (if GFXCheck is the rename the file to .BAD) or DELETE
  311.     (self-explanatory).  The default is NONE.
  312.  
  313.     Note that the disposition will be applied to description processing if in
  314.     process.  If the disposition is set to RENAME, the filename will be renamed
  315.     in the description file; if DELETE, the file's description will be deleted.
  316.  
  317. TRIM_EOF
  318.     With this option enabled, GFXCheck will trim any extraneous bytes from the
  319.     end of a GIF or JPEG graphic file, saving disk space and easing the job of
  320.     your duplication checking software, if any.  If commented out, trimming
  321.     will be enabled.
  322.  
  323. GIF_MIN_RES, JPEG_MIN_RES and BMP_MIN_RES
  324.     The minimum acceptable image resolution GFXCheck is to accept for graphic
  325.     files in the format "WIDTH x HEIGHT x COLORS"; this can be set for the two
  326.     formats independently via the two configuration keywords.  If a particular
  327.     element of the image value is set to 0, GFXCheck will not use that element
  328.     in the evaluation.  Setting to 0x0x0 will disable the image resolution
  329.     check entirely and will prevent rejection based upon resolution.
  330.  
  331. ALLOW_GIFLITE
  332.     If GFXCheck is to accept GIF files that have been compressed with GIFLITE,
  333.     set this to YES.  Otherwise, set it to NO or comment out the line.  GIFLITE
  334.     poses problems to duplication checking systems such as that in ULP, ZDCS,
  335.     etc. due to it's variable user-defined compression ratio.  A user could
  336.     conceivably compress the same image several times, producing several files
  337.     that would be the same image but mathematically different.  Default is NO.
  338.  
  339. GIF_INFO_FMT, JPEG_INFO_FMT and BMP_INFO_FMT
  340.     GFXCheck can update BBS directory listings with an information line for
  341.     good GIF, JPEG and/or BMP files.  The following lines define the format for
  342.     the informational line using various @-macros.  Recognized @-macros are:
  343.  
  344.         @BOARDNAME@  BBS name (from key file)
  345.         @SYSTIME@    System time
  346.         @SYSDATE@    System date
  347.         @SYSOPNAME@  BBS sysop's name (from key file)
  348.         @SERIAL@     GFXCheck serial number (from key file)
  349.         @VERSION@    GFXCheck revision number
  350.         @FILENAME@   Filename being processed
  351.         @FORMAT@     Format of the file ("GIF87a", "GIF89a", "JPEG" or "BMP")
  352.         @OSIZE@      Original file size
  353.         @NSIZE@      New file size
  354.         @WID@        GIF/JPEG/BMP image width
  355.         @HGT@        GIF/JPEG/BMP image height
  356.         @COL@        GIF/JPEG/BMP number of colors
  357.         @SCOL@       GIF/JPEG/BMP number of colors (shortened form)
  358.         @COMP@       GIF compression ("GIFLITE" or "None")
  359.  
  360. INFO_POS
  361.     This defines where the inserted text will be placed, as an appended line
  362.     (NEW_LINE) or on the first line (FIRST_LINE) by itself.  The default value
  363.     is NEW_LINE.
  364.  
  365. SEC_DESC_COL
  366.     If GFXCheck is to update BBS directory listings with an information line,
  367.     the following defines the column for the secondary desc character.  The
  368.     defaults is 32, matching PCBoard's default value.
  369.  
  370. SEC_DESC_CHAR
  371.     If GFXCheck is to update BBS directory listings with an information line,
  372.     this defines the secondary desc character.  The default is '|', matching
  373.     PCBoard's default character.
  374.  
  375. CMT_LOG_FILE
  376.     GFXCheck can extract the current comment from the graphics file and log it
  377.     to a log file if this information is of any interest.  Comment out if no
  378.     comment logging is desired.  This cannot be the same file defined as the
  379.     LOG_FILE paramter!
  380.  
  381. GIF_STRIP_CMT and JPEG_STRIP_CMT
  382.     GFXCheck can strip the current comment from a GIF or JPEG graphics file.
  383.     If you want any existing comment stripped, enable one or both parameters.
  384.  
  385. GIF_CMT_TPL and JPEG_CMT_TPL
  386.     GFXCheck is fully capable inserting a new comment into a graphics file;
  387.     note that in the process of doing so, GFXCheck will strip any previous
  388.     comment.  The comments are designed as a template using the same
  389.     @-variables as the information lines and can be individually configured for
  390.     GIF and JPEG files.  If no comments are to be inserted, comment out the
  391.     parameters.  Since many graphics viewers do not like high ASCII, use only
  392.     plain text in your comment templates.  Note that in keeping with the GIF
  393.     standards, if a comment is inserted into a GIF87a GIF file, it will be
  394.     changed to GIF89a, the format that supports comments.
  395.  
  396.  
  397. ┌──────────────────────────────────┐
  398. │  9. BBS Application Information  │
  399. └──────────────────────────────────┘
  400.  
  401. UPLOADPROCESSOR:
  402. ────────────────
  403. The correct configuration setup for GFXCheck within UpLoadProcessor 2.10 (or
  404. higher) is as a graphics file checker.  In the "GIF/JPEG File Testing" menu of
  405. ULPSM, set up the GIF and JPEG file checker command lines as follows:
  406.  
  407.     Checker command:        c:\gfxchk\gfxchk -Cgfxchk.cfg -F@FILE@
  408.     Successful errorlevel:  0 (must match GOOD_ERRLEV setting)
  409.     Run in a window:        Doesn't matter...<N>o might be a little faster
  410.  
  411. In addition, ULP users should not allow GFXCheck to reject based upon
  412. resolution, as ULP has that ability internally.  Set the GIF_MIN_RES and
  413. JPEG_MIN_RES parameters to "0x0x0".
  414.  
  415. As ULP has it's own GIF/JPEG information line functionality, it is not possible
  416. to have GFXCheck update the file description.
  417.  
  418. GENERIC BATCH FILE:
  419. ───────────────────
  420. The following generic batch file (modeled after PCBTEST.BAT) will autodetect
  421. the compression format of the archive using TESTFILE.EXE (a utility provided by
  422. Clark Development with their PCBoard BBS Software) and verify any graphical
  423. uploads with GFXCheck:
  424.  
  425.     @Echo off
  426.     cls
  427.  
  428.     if exist pcbpass.txt del pcbpass.txt
  429.     if exist pcbfail.txt del pcbfail.txt
  430.  
  431.     REM - Intercept GIF, JPEG and BMP files for test...
  432.     d:\pcb\testfile %1 gif jpg bmp
  433.     if errorlevel 98 goto ARCHIVE_TEST
  434.  
  435.     d:\gfxchk\gfxchk -cgfxchk.cfg -f%1 -d%2
  436.     if errorlevel 0 goto GFX_OK
  437.     echo ERROR: File failed GFXCheck file check... > pcbfail.txt
  438.     goto END
  439.  
  440.     :GFX_OK
  441.     echo File passed GFXCheck file check... > pcbpass.txt
  442.     goto END
  443.  
  444.     REM - Your upload processing software goes here for general archives...
  445.     :ARCHIVE_TEST
  446.     e:\programs\ulp2\ulp -Ce:\programs\ulp2\ulp.cfg -F%1 -M%2 -D%3 -T0
  447.  
  448.     :END
  449.     exit
  450.  
  451. OTHER SOFTWARE:
  452. ───────────────
  453. If you are using a BBS file and/or upload processing system other than those
  454. described above, please provide information regarding your implementation
  455. details for inclusion in this documentation.  Thanks!
  456.  
  457.  
  458. ┌──────────────────────────────┐
  459. │  10. The Future of GFXCheck  │
  460. └──────────────────────────────┘
  461.  
  462. GFXCheck will be supported as long as I'm poking around cyberspace (which could
  463. be quite a while...once it's in your blood, it's hard to shake it <g>).
  464.  
  465. Thanks for giving GFXCheck a try!
  466.  
  467.  
  468. ┌────────────────────────┐
  469. │  11. Acknowledgements  │
  470. └────────────────────────┘
  471.  
  472. The Graphics Interchange Format(c) is the Copyright property of CompuServe
  473. Incorporated.  GIF(sm) is a Service Mark property of CompuServe Incorporated.
  474. (Standard verbage required by CompuServe)
  475.  
  476.  
  477. ┌────────────────────────────┐
  478. │  Appendix A:  Error Codes  │
  479. └────────────────────────────┘
  480.  
  481. The following is a list of the error codes that GFXCheck puts in the log file
  482. to indicate the various errors detected in GIF, JPEG and BMP files (if the
  483. FAIL_ERRLEV parameter is set to -1, this will also be the operating system
  484. errorlevel).  Since many of these errors are structural in nature, they may not
  485. be of any interest to the average user, but here they are anyway:
  486.  
  487.     1   Unknown format (e.g. not a GIF or JPEG file)
  488.     2   Does not meet minimum resolution defined
  489.     3   Unexpected end of file (short file)
  490.     10  Error in GIF file header
  491.     11  Error in GIF image descriptor
  492.     12  No image in GIF file
  493.     13  GIF version conflict (e.g. GIF89a extensions in GIF87a file)
  494.     14  GIFLITEd GIF file (only if ALLOW_GIFLITE is set to "no")
  495.     20  JPEG duplicate start of image marker
  496.     21  JPEG duplicate APP0 application marker
  497.     22  Error in JPEG APP0 application block
  498.     23  JPEG duplicate start of frame marker
  499.     24  Error in JPEG start of frame block
  500.     25  Error in JPEG Huffman table block
  501.     26  Invalid marker in JPEG file
  502.     27  Missing a required marker in JPEG file
  503.     28  No image in JPEG file
  504.     29  Error in JPEG quantization table block
  505.     30  Error in JPEG restart interval block
  506.     31  Invalid or unknown JPEG marker
  507.     40  Error in BMP file header
  508.     41  Invalid number of planes in BMP
  509.     42  Invalid compression in BMP
  510.     43  Invalid colors used value in BMP
  511.  
  512.  
  513. ┌─────────────────────────────────────┐
  514. │  Appendix B:  Command Line Summary  │
  515. └─────────────────────────────────────┘
  516.  
  517. GFXCHK2 -Cconfig.ext -Fd:\path\graphic.ext [-Dd:\path\descrip.ext] [-I] [-R]
  518.    [-Q]
  519.  
  520.    -C  filename of the configuration file
  521.    -F  full path and filename of the graphic file(s) to be checked
  522.    -D  full path and filename of the description file to be updated  [optional]
  523.    -I  extract image parameters only (no checking)  [optional]
  524.    -R  retain original graphic file date stamp(s)  [optional]
  525.    -Q  quiets beep on error  [optional]
  526.