home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / gbmos2pm.zip / gbmdlg / gbmdlg.hlp (.txt) < prev    next >
OS/2 Help File  |  1997-01-26  |  27KB  |  837 lines

  1.  
  2. ΓòÉΓòÉΓòÉ 1. Bitmap File dialog ΓòÉΓòÉΓòÉ
  3.  
  4. This dialog allows you to load a bitmap from a file, or save a bitmap to a 
  5. file. Filenames and directories may be selected from the listboxes via the 
  6. keyboard or the mouse, just like in any other File dialog. 
  7.  
  8. You can handle bitmap files of a variety of different formats. For example, 
  9. OS/2 Bitmaps, CompuServe GIF files, ZSoft PCX files and many others. 
  10.  
  11. To see an extensive list of the level of support for the various bitmap 
  12. formats, and the format specific options available in each, see the Bitmap file 
  13. format support section of this help. 
  14.  
  15. You can select which files are listed in the files listbox using the Bitmap 
  16. filetype filter combo box. You can pick, <All files>, <All GBM supported files> 
  17. and various <Format>s. 
  18.  
  19. The program will look at the file extension and determine the format of the 
  20. file and use the relevant bitmap file handling code. 
  21.  
  22. The Optional bitmap format specific options field allows you to specify a 
  23. string which is used to give hints to the relevant bitmap file handling code. 
  24. For example, you can tell the GIF file reader to ignore corrupt data and return 
  25. how far it got by giving the "errok" option. 
  26.  
  27.  
  28. ΓòÉΓòÉΓòÉ 2. Bitmap file format support ΓòÉΓòÉΓòÉ
  29.  
  30. This program uses the Generalised Bitmap Module. This peice of code can read 
  31. and write a variety of bitmap formats. The application program is unaware of 
  32. the file format of any bitmaps, and is just presented with the bitmap data in a 
  33. single standard way. 
  34.  
  35. Some bitmap formats allow additional options to be supplied and these options 
  36. are listed highlighted like this. 
  37.  
  38. This section fully defines the level of support :- 
  39.  
  40. Formats supported are : 
  41.  
  42.       OS/2 / Windows Bitmap 
  43.  
  44.       CompuServe Graphics Interchange Format 
  45.  
  46.       ZSoft PC Paintbrush Image Format 
  47.  
  48.       Microsoft/Aldus Tagged Image File Format 
  49.  
  50.       Truevision Targa/Vista 
  51.  
  52.       Amiga IFF / ILBM Interleaved bitmap format 
  53.  
  54.       YUV12C M-Motion Frame Buffer 
  55.  
  56.       Portable Greyscale-map 
  57.  
  58.       Portable Pixel-map 
  59.  
  60.       IBM KIPS 
  61.  
  62.       IBM Image Access eXecutive 
  63.  
  64.       X Windows bitmap 
  65.  
  66.       RiscOS Sprite 
  67.  
  68.       IBM Printer Page Segment 
  69.  
  70.       GEM Raster 
  71.  
  72.       Portrait 
  73.  
  74.       JPEG 
  75.  
  76.       Others 
  77.  
  78.  The Bitmap File Dialog can handle bitmaps in any of the formats documented 
  79.  above. 
  80.  
  81.  
  82. ΓòÉΓòÉΓòÉ 2.1. OS/2 / Windows bitmap ΓòÉΓòÉΓòÉ
  83.  
  84. The following file extensions 
  85.  
  86.   .BMP .VGA .BGA .RLE .DIB .RL4 .RL8
  87.  
  88. are recognised as OS/2 1.1, 1.2, 2.0 or Windows 3.0 bitmaps. 
  89.  
  90. Input 
  91.  
  92. The bitmap support will read any of the above if uncompressed or run-length 
  93. compressed. 
  94.  
  95. CCITT G3 MH Fax compressed files, or RLE24 compressed files can't be read. 
  96.  
  97.  index=N 
  98.         Can be used if the file is an OS/2 bitmap-array file to specify which 
  99.         bitmap in the array to read (default N=0 - the first in the array). 
  100.  inv 
  101.         Causes the palette to get inverted after reading. Provided to allow for 
  102.         inconsistencies between Windows and OS/2 programs in how the palette of 
  103.         1bpp files should be interpreted. 
  104.  invb 
  105.         Causes the bitmap bits to get inverted after reading. 
  106.  
  107.  Output 
  108.  
  109.  The this module can write both OS/2 1.1 and OS/2 2.0 / Windows 3.0 style 
  110.  bitmaps. 
  111.  
  112.  By default OS/2 2.0 or Windows 3.0 bitmaps are written. 
  113.  
  114.  The OS/2 2.0 / Windows 3.0 style of bitmaps written are written with a header 
  115.  size (cbFix) of 40, which is compatible with both Windows 3.0 and OS/2 2.0. 
  116.  
  117.  1.1 
  118.         Causes the bitmap to be written OS/2 1.1 style. 
  119.  2.0 or win 
  120.         Causes the bitmap to be written OS/2 2.0 / Windows 3.0 style. 
  121.  inv 
  122.         Causes the palette to get inverted before written. Provided to allow 
  123.         for inconsistencies between Windows and OS/2 programs in how the 
  124.         palette of 1bpp files should be interpreted. 
  125.  invb 
  126.         Causes the bitmap bits to get inverted before written. 
  127.  darkfg 
  128.         This is probably the best option to use when writing 1bpp bitmaps. It 
  129.         ensures that the darkest colour is represented in the file as 1's (and 
  130.         is therefore the foreground), and when the bitmap is reloaded, this 
  131.         will come out black. 
  132.  lightfg 
  133.         As darkfg, but the lightest colour is stored as 1's. 
  134.  
  135.  The newer MultiMedia Windows bitmap format that allows 16 and 32 bpp support 
  136.  is not currently supported. 
  137.  
  138.  The Bitmap file format support help panel lists other supported file formats. 
  139.  
  140.  
  141. ΓòÉΓòÉΓòÉ 2.2. CompuServe Graphics Interchange Format ΓòÉΓòÉΓòÉ
  142.  
  143. The .GIF file extension is recognised as a GIF file. 
  144.  
  145. Input 
  146.  
  147. 1 bpp GIF files are read as 1 bpp data. 
  148.  
  149. 2, 3 and 4 bit GIF files are read and returned as 4 bpp data. 
  150.  
  151. 5, 6, 7 and 8 bit GIF files are read and returned as 8 bpp data. 
  152.  
  153. GIF files provide no support for 24 bpp images. 
  154.  
  155. Both GIF87a and GIF89a level files may be read. 
  156.  
  157. The code will correctly handle deferred clear-codes in the LZW data stream. 
  158. Files with these often break earlier programs that claim to load GIF files. 
  159.  
  160.  index=N 
  161.         Can be used to specify which image in the GIF file to read (default 
  162.         N=0). 
  163.  errok 
  164.         If a corrupted or truncated GIF file is encountered, normally an error 
  165.         is returned. With this option, as much data as was decoded before the 
  166.         error is returned, and no error occurs. 
  167.  
  168.  Output 
  169.  
  170.  The GIF87a style of GIF files are written, and since the GIF standard is 
  171.  backwardly compatible, all programs that claim to load GIF files should handle 
  172.  the output generated by this program. 
  173.  
  174.  The exception to this is that if the transcol option is used a GIF89a style 
  175.  file will be written. 
  176.  
  177.  This program does not generate GIF files with deferred-clear-codes, as these 
  178.  have been shown to break many older GIF readers. 
  179.  
  180.  xscreen=N,yscreen=N 
  181.         Specifies what values to put in these fields of the GIF file header. 
  182.         The default is the image size. 
  183.  background=N 
  184.         Specifies what background colour index to write in the GIF file header. 
  185.         The default is 0. 
  186.  xpos=N,ypos=N 
  187.         Specifies what values to put in these fields in the GIF file header. 
  188.         The defaults are 0 and 0. 
  189.  transcol=N 
  190.         Specifies that index N designates a transparent colour. This option is 
  191.         useful for when you wish to embed GIF files in HTML documents. Using 
  192.         this option causes a GIF89a file to be written because the Graphics 
  193.         Extension Block holding the transparency information is a part of the 
  194.         GIF89a spec., and not the GIF87a. 
  195.  transcol=edge 
  196.         As above, except transparent colour is the colour of the first pixel in 
  197.         the bitmap. 
  198.  ilace 
  199.         Causes the GIF file to be written interlaced, which can be good for 
  200.         those GIF files referenced from HTML documents. 
  201.  
  202.  This code correctly handles 1bpp GIF files. Some programs make incorrect 
  203.  assumptions about the initial LZW code table size in the 1bpp case, and so 
  204.  fall over. UBU is/was guilty of this. 
  205.  
  206.  This code has been tested on a wide selection of files from a wide variety of 
  207.  sources. It has been tested against the output of public domain PPMTOGIF.EXE, 
  208.  and tested for compatibility with UNIX X Windows xloadimage and xv. 
  209.  
  210.  The Bitmap file format support help panel lists other supported file formats. 
  211.  
  212.  GIF and 'Graphics Interchange Format' are trademarks (tm) of Compuserve, 
  213.  Incorporated, an H&R Block Company. 
  214.  
  215.  
  216. ΓòÉΓòÉΓòÉ 2.3. ZSoft PC Paintbrush Image Format ΓòÉΓòÉΓòÉ
  217.  
  218. The .PCX and .PCC file extensions are recognised as a Paintbrush file. 
  219.  
  220. Only a subset of the possible planes/bits-per-plane combinations are supported. 
  221.  
  222. Input 
  223.  
  224. This program reads 1,4,8 and 24 bpp files. 
  225.  
  226. The run-length encoding scheme is supported. 
  227.  
  228. Compressed runs of pixels are not supposed to straddle scan lines. Some other 
  229. applications violate this rule. By default, if this code finds that a run of 
  230. pixels is longer than the scan line, it will use the leftover pixels on the 
  231. next scan line. Some images will not load properly, as they require the loading 
  232. program to discard those pixels in the run that extend beyond the end of the 
  233. scan line. This behaviour can be enabled using the trunc option. 
  234.  
  235. Output 
  236.  
  237. This program writes 1,4,8 and 24 bpp files, using run-length compression. 
  238.  
  239. It will always ensure run-lengths of pixels do not straddle scan lines. 
  240.  
  241. This code has been tested on some PC Paintbrush originated .PCX files. 
  242.  
  243. The Bitmap file format support help panel lists other supported file formats. 
  244.  
  245.  
  246. ΓòÉΓòÉΓòÉ 2.4. Microsoft/Aldus Tagged Image File Format ΓòÉΓòÉΓòÉ
  247.  
  248. The .TIF and .TIFF file extensions are recognised as TIFF files. 
  249.  
  250. There is support to handle 1,4,8 and 24 bpp files. 
  251.  
  252. Input 
  253.  
  254. This program reads uncompressed, Packbits and LZW compressed files. 
  255.  
  256. This code will read all Baseline TIFF 6.0 files, except CCITT Modified Huffman 
  257. encoded bi-level files. 
  258.  
  259.  index=N 
  260.         Can be used if the file contains more than one image to specify which 
  261.         image to read (default N=0 - the first). 
  262.  
  263.  Output 
  264.  
  265.  This program usually writes uncompressed data. 
  266.  
  267.  Data are written in a single large strip. 
  268.  
  269.  Files written by this code are Baseline TIFF 6.0 compliant. 
  270.  
  271.  artist=TEXT 
  272.         Causes an Artist tag to be added with text TEXT. 
  273.  lzw 
  274.         Asks GBM to use LZW compression. 
  275.  software=TEXT 
  276.         Causes the Software tag to be added with text TEXT. 
  277.  make=TEXT 
  278.         Causes the Make tag to be added with text TEXT. 
  279.  model=TEXT 
  280.         Causes the Model tag to be added with text TEXT. 
  281.  host=TEXT 
  282.         Causes the Host tag to be added with text TEXT. 
  283.  documentname=TEXT 
  284.         Causes the DocumentName tag to be added with text TEXT. 
  285.  pagename=TEXT 
  286.         Causes the PageName tag to be added with text TEXT. 
  287.  imagedescription=TEXT 
  288.         Causes the ImageDescription tag to be added with text TEXT. 
  289.  pal1bpp 
  290.         Causes 1 bpp data to be written as a palettised file, with 2 palette 
  291.         entries. Technically this is not TIFF 6.0 Baseline compliant. The 
  292.         default is to write out a bi-level file with the brightest colour as 
  293.         white. This is Baseline compliant. 
  294.  
  295.  The TEXT should not include spaces. 
  296.  
  297.  There are 2 well known corruptions of the TIFF format. 
  298.  
  299.  Some TIFF writers write the ColorMap tags length to be 2^N, whereas it should 
  300.  be 3*2^N. This code will detect this tag having a bad length, and correct for 
  301.  it transparently. UBU is/was guilty of this. 
  302.  
  303.  Some TIFF readers/writers believe that ColorMap entrys are bytes. In fact they 
  304.  are words. When reading TIFF files, if this code finds that all the palette 
  305.  entrys are in the range 0-255, as opposed to 0-65535, then it multiplys them 
  306.  all by 256, thus transparently overcoming the problem. When writing TIFF 
  307.  files, this code writes the 8 bit palette entry in both the low and high bytes 
  308.  of the tag. Thus programs that look at the high byte work fine. Programs that 
  309.  use the full word work fine (the colours get 0.5% brighter). Programs that 
  310.  incorrectly look at the bottom byte work fine too. At least one version of 
  311.  Image Support is/was guilty of this. 
  312.  
  313.  JPEG compressed data, and data in the Y-Cb-Cr colour space is not supported. 
  314.  
  315.  CCITT G3 Modified Huffman / Facsimile compressed data is not supported. 
  316.  
  317.  The Bitmap file format support help panel lists other supported file formats. 
  318.  
  319.  
  320. ΓòÉΓòÉΓòÉ 2.5. Truevision Targa/Vista bitmap ΓòÉΓòÉΓòÉ
  321.  
  322. The following file extensions 
  323.  
  324.   .TGA .VST .AFI
  325.  
  326. are recognised as Targa/Vista files. 
  327.  
  328. This code can read the uncompressed or run-length compressed Targa/Vista 
  329. formats. It will write uncompressed files. 
  330.  
  331. This code only supports 8 bpp and 24 bpp images. 
  332.  
  333. Input 
  334.  
  335. This code will read files with both top-left-origin and bottom-left-origin. Not 
  336. all Targa readers correctly handle bottom-left-origin files. 
  337.  
  338. When reading 16 bpp files (which are 5 red + 5 green + 5 blue + 1 alpha), they 
  339. are loaded and presented as 24 bpp bitmaps with only the top 5 bits of each of 
  340. the 8 bit bytes valid. The bottom 3 bits are zero. 
  341.  
  342. When reading 32 bpp files (which are 8 red + 8 green + 8 blue + 8 alpha), the 
  343. alpha channel is ignored. 
  344.  
  345. Output 
  346.  
  347.  yup and ydown 
  348.         Causes the data to be written in bottom-left-origin or top-left-origin 
  349.         form. The default is bottom-left-origin. 
  350.  16 
  351.         If the data is 24 bpp, then the 16 flag causes only the most 
  352.         significant 5 bits of the red, green and blue to be written in a 16 bit 
  353.         pixel. 
  354.  24 
  355.         Has no effect, as this is the default. 
  356.  32 
  357.         If the data is 24 bpp, then the 32 flag causes the data to be padded 
  358.         with 8 zero bits of alpha channel to make a 32 bit pixel. 
  359.  
  360.  The Bitmap file format support help panel lists other supported file formats. 
  361.  
  362.  
  363. ΓòÉΓòÉΓòÉ 2.6. Amiga IFF / ILBM Interleaved bitmap format ΓòÉΓòÉΓòÉ
  364.  
  365. The following file extensions 
  366.  
  367.   .IFF .LBM
  368.  
  369. are recognised as interleaved bitmap files. 
  370.  
  371. Normally ILBM files are 1,2,3,4 or 5 bpp, because the early Amigas supported 
  372. upto 32 colours at once. 6,7, 8 and 24 bpp files are also found nowadays too. 
  373.  
  374. Extra-HalfBrite, or EHB is a mode where N colours have palette entries, but the 
  375. file may contain 2*N colours. The second set of N colours are half the 
  376. brightness of the first half. In this way, for example, 64 colours may be 
  377. displayed on an early Amiga. 
  378.  
  379. Hold-And-Modify, or HAM is a type of screen format where each pixel is either 
  380. one of a small number of colours in a palette, or is held the same as the pixel 
  381. to its left except that either the red, green or blue is modified. In this way 
  382. a much larger range of colours can be displayed. 
  383.  
  384. HAM modes sometimes have fringes down the vertical edges of shapes in the 
  385. picture, as sometimes it is necessary to modify the lefthand pixel several 
  386. times to get to the desired colour, if a suitable entry is not in the palette. 
  387.  
  388. HAM6 is a HAM mode where there are 16 base palette entries and a possible 
  389. maximum of 4096 colours. This is found on early Amigas. 
  390.  
  391. HAM8 is a HAM mode where there are 64 base palette entries and a full 24 bit 
  392. range of colours. Also because of the larger palette, fringing is less than in 
  393. HAM6. This mode is present on later Amigas. 
  394.  
  395. Sliced-Hold-And-Modify, or SHAM is a mode where the palette is changed on every 
  396. (or every other) scan line. This also helps reduce fringing compared to normal 
  397. HAM6. SHAM is actually sliced HAM6, and might really be called SHAM6, and SHAM8 
  398. is not known to exist. 
  399.  
  400. Input 
  401.  
  402. This code can read files that contain uncompressed or RLE compressed data. 
  403.  
  404. 1 bpp files can be read ok. 
  405.  
  406. 2,3 and 4 bpp files are read and returned as 4 bpp data. 
  407.  
  408. 5,6,7 and 8 bpp files are read and returned as 8 bpp data. 
  409.  
  410. 24 bpp files are read and returned as 24 bpp data. 
  411.  
  412. EHB images can be read and are returned as 8 bpp data. 
  413.  
  414. HAM6, HAM8 and SHAM files can be read and are returned as 24 bpp data. 
  415.  
  416. Only the BMHD, CMAP, CAMG and BODY chunks are used when reading the file. 
  417.  
  418. Output 
  419.  
  420. This code can write 1, 4, 8 and 24 bpp files. 
  421.  
  422. 24 bpp files can also be written in HAM6 form. This loses quality, but, is 
  423. still better than a normal 8 bpp file. 
  424.  
  425. This code writes RLE compressed data, as this usually results in much smaller 
  426. files. 
  427.  
  428. Only the BMHD, CMAP and BODY chunks are written to the file. When writing HAM 
  429. data, a CAMG chunk is written also. 
  430.  
  431. You can optionally override parts of the BMHD header. 
  432.  
  433.  ham6 
  434.         Means write 24 bpp data in HAM6 format, rather than as a true 24 bpp 
  435.         file. 
  436.  xpos=N,ypos=N 
  437.         Overrides the origin information in the file. Defaults are 0,0. 
  438.  transcol=N 
  439.         Overrides the transparent colour field. Default is 0. 
  440.  xaspect=N,yaspect=N 
  441.         Overrides the aspect ratio information. Defaults are 1,1. This header 
  442.         information is not always honored by ILBM readers. 
  443.  xscreen=N,yscreen=N 
  444.         Overrides the screen size information. This is not often used by ILBM 
  445.         readers. The default is the image size. 
  446.  
  447.  Note that when some early programs try to load an >5 bpp ILBM file, they can 
  448.  switch to a 32 colour (5 bpp mode) and only read the 5 least significant 
  449.  planes of the file. This generally looks bad. 
  450.  
  451.  This support has been tested using a large range of sample files. But, some 
  452.  sample files supplied to the author have yet to be loaded. In particular some 
  453.  (24bpp?) DCTV originated files are not yet understood. 
  454.  
  455.  The Bitmap file format support help panel lists other supported file formats. 
  456.  
  457.  
  458. ΓòÉΓòÉΓòÉ 2.7. YUV12C M-Motion Frame Buffer ΓòÉΓòÉΓòÉ
  459.  
  460. The .VID file extension is recognised as a YUV12C file. 
  461.  
  462. Although YUV12C files contain 12 bit YUV encoded colour image data, this code 
  463. pretends they contain 24 bit RGB encoded colour data. 
  464.  
  465. Input 
  466.  
  467. The files are converted from YUV to RGB data before the data is presented to 
  468. the program. 
  469.  
  470. Output 
  471.  
  472. The RGB data is converted to YUV when it is written to disk. 
  473.  
  474. YUV12C files must be a multiple of 4 pixels wide. When trying to write a bitmap 
  475. that is not a multiple of 4 pixels wide, this code truncates the last 1, 2 or 3 
  476. pixels left over. 
  477.  
  478.  xpos=N,ypos=N 
  479.         Overrides the origin information in the file. Defaults are 0,0. 
  480.  
  481.  This support has been tested using the M-Control Program 2.0, Browser sample 
  482.  application. 
  483.  
  484.  The Bitmap file format support help panel lists other supported file formats. 
  485.  
  486.  
  487. ΓòÉΓòÉΓòÉ 2.8. Portable Greyscale-map ΓòÉΓòÉΓòÉ
  488.  
  489. The .PGM file extension is recognised as a Greymap file. 
  490.  
  491. Credit for file format to Jef Poskanzer. 
  492.  
  493. Only the Binary P5 form of this format is supported. 
  494.  
  495. These files hold no palette information. 
  496.  
  497. Input 
  498.  
  499. The files are returned as an 8 bit image usually with a greyscale palette. 
  500.  
  501.  r,g,b or k 
  502.         Forces the image to be read as shades of red, green, blue or grey (the 
  503.         default). 
  504.  
  505.  Output 
  506.  
  507.  Normally 8 bpp image data as the greyscale equivelent of the bitmap data. 
  508.  
  509.  r,g,b or k 
  510.         Forces the red,green or blue component of the image to be written, or 
  511.         alternatively to write the greyscale equivelent (the default). 
  512.  
  513.  The Bitmap file format support help panel lists other supported file formats. 
  514.  
  515.  
  516. ΓòÉΓòÉΓòÉ 2.9. Portable Pixel-map ΓòÉΓòÉΓòÉ
  517.  
  518. The .PPM file extension is recognised as a Pixel-map file. 
  519.  
  520. Credit for file format to Jef Poskanzer. 
  521.  
  522. Only the Binary P6 form of this format is supported. 
  523.  
  524. The Portable Pixel-map format is only capable of holding 24 bpp RGB data, and 
  525. this code fully supports this. 
  526.  
  527. The Bitmap file format support help panel lists other supported file formats. 
  528.  
  529.  
  530. ΓòÉΓòÉΓòÉ 2.10. IBM KIPS ΓòÉΓòÉΓòÉ
  531.  
  532. The .KPS file extension is recognised as a Pixel-map file. 
  533.  
  534. The .KPS file is not enough to define a KIPS image. 
  535.  
  536. The palette is stored in either an associated .PAL or .KPL file. 
  537.  
  538. Input 
  539.  
  540.  pal or kpl 
  541.         Tells this code to look for a .PAL or a .KPL file to find the palette 
  542.         (default is .PAL) 
  543.  
  544.  Output 
  545.  
  546.  pal or kpl 
  547.         Tells this code to write  a .PAL or a .KPL file containing the palette. 
  548.         (default is .PAL) 
  549.  
  550.  The Bitmap file format support help panel lists other supported file formats. 
  551.  
  552.  
  553. ΓòÉΓòÉΓòÉ 2.11. IBM Image Access eXecutive ΓòÉΓòÉΓòÉ
  554.  
  555. The .IAX file extension is recognised as a IAX file. 
  556.  
  557. This image format does not include a palette or a file header. In particular, 
  558. the image file size cannot be determined from the file! This code assumes an 
  559. image width of 512 pixels, and determines the image height by dividing the file 
  560. size by the width. 
  561.  
  562. The data is presented as a greyscale. 
  563.  
  564. Input 
  565.  
  566.  r,g,b or k 
  567.         Forces the image to be read as shades of red, green, blue or grey (the 
  568.         default). 
  569.  width=N 
  570.         Overrides the default assumption that the image width is 512 pixels. 
  571.  
  572.  Output 
  573.  
  574.  Normally 8 bpp image data as the greyscale equivelent of the bitmap data. 
  575.  
  576.  r,g,b or k 
  577.         Forces the red,green or blue component of the image to be written, or 
  578.         alternatively to write the greyscale equivelent (the default). 
  579.  
  580.  The Bitmap file format support help panel lists other supported file formats. 
  581.  
  582.  
  583. ΓòÉΓòÉΓòÉ 2.12. X Windows Bitmap ΓòÉΓòÉΓòÉ
  584.  
  585. The .XBM file extension is recognised as a X Bitmap file. 
  586.  
  587. X Bitmap files are ASCII text files, that look to be directly source 
  588. include-able in C programs. 
  589.  
  590. This program is very generous in its parsing of the files. 
  591.  
  592. This program supports X10 and X11 1bpp bitmaps. Some .XBM files with text 
  593. strings inside have been encountered. These looked to be sprites or icons and 
  594. are not supported. 
  595.  
  596. When reading X Bitmaps, 1's are returned as black, 0's as white. 
  597.  
  598. When writing X bitmaps, the darkest colour is written as 1's, the lightest as 
  599. 0's. 
  600.  
  601. This code has been tested on some .XBM files. 
  602.  
  603. The Bitmap file format support help panel lists other supported file formats. 
  604.  
  605.  
  606. ΓòÉΓòÉΓòÉ 2.13. RiscOS Sprite ΓòÉΓòÉΓòÉ
  607.  
  608. The .SPR and .SPRITE file extensions are recognised as a RiscOS sprite file. 
  609. Technically, due to the way the RiscOS works, files don't have extensions. But 
  610. for convenience, I have arbitrarily said .SPR, to allow sprites to fit in with 
  611. all the other image formats. 
  612.  
  613. Input 
  614.  
  615. This code will read 1,2,4 and 8 bpp files. 2bpp files will be expanded to 4bpp 
  616. on reading. 
  617.  
  618. Sprite files can contain an image, or an image and a mask plane. This code will 
  619. ignore the mask plane. 
  620.  
  621. If no palette is present in the file, GBM will assume a default palette similar 
  622. to that used by the RiscOS Wimp. 
  623.  
  624. There is a limitation in that the first-bit field of the sprite header must be 
  625. a multiple of 8 (highly likely). 
  626.  
  627.  index=N 
  628.         Can be used if the file contains more than one sprite to specify which 
  629.         sprite in the file to read (default N=0 - the first in the file). 
  630.  
  631.  Output 
  632.  
  633.  This code will write 1,4 and 8bpp files. 
  634.  
  635.  A palette will be written into the file. 
  636.  
  637.  Only the image plane is written, ie: no mask plane. 
  638.  
  639.  When outputting 8bpp bitmaps, the usual wierd Archimedes palette is written 
  640.  and the bitmap data is mapped to this palette. This is because the Archimedes 
  641.  cannot support arbitrary 256 colour palettes. The VIDC chip only has 16 
  642.  palette registers, with 16 fixed overrides on (or shades of) each. 
  643.  
  644.  GBM writes 16 palette entries to the file. Sprite files can be found with 64 
  645.  palette entries (with 4 overrides on each). However, it is seen that these 64 
  646.  palette entries are actually just 16 entries with the 4 overrides on each. 
  647.  Hence this is equivelent to 16 entries with 16 overrides, except some of the 
  648.  overrides are explicitly stored in the file. 
  649.  
  650.  Tested reading 4bpp sprites with no palette. 
  651.  
  652.  Tested reading 8bpp sprites with no palette and with 64 entry palette. 
  653.  
  654.  Sprites generated by GBM have been loaded on RiscOS. Remember: Use SetType to 
  655.  change type of file from PC-file to Sprite, by SetType option of filer menu or 
  656.  "*SetType <filename> Sprite". 
  657.  
  658.  The Bitmap file format support help panel lists other supported file formats. 
  659.  
  660.  
  661. ΓòÉΓòÉΓòÉ 2.14. IBM Printer Page Segment ΓòÉΓòÉΓòÉ
  662.  
  663. The following file extensions 
  664.  
  665.   .PSE .PSEG .PSEG38PP .PSEG3820
  666.  
  667. are recognised as PSEG files. 
  668.  
  669. PSEG files are used as a way to include image data in SCRIPT documents. 
  670.  
  671. PSEG files only contain 1bpp data, which is always ink on paper, ie: black on 
  672. white. 
  673.  
  674. Input 
  675.  
  676. PSEG files should be downloaded from the host in binary mode. No EBCDIC/ASCII 
  677. conversion should be used in the download process. 
  678.  
  679. The palette is always returned as black 1's on white 0's, because PSEG files do 
  680. not include any palette. 
  681.  
  682.  fixrec 
  683.         Some PSEG files have been observed to have shorter records than 
  684.         specified in the length field (2nd and 3rd bytes) of a record. Although 
  685.         this doesn't matter when on VM, it can confuse non-VM readers, such as 
  686.         GBM. GBM can be told to attempt to compensate for this corrupt record 
  687.         structure using the fixrec option. 
  688.  
  689.  Output 
  690.  
  691.  When writing PSEG files, any colour palette is lost. 
  692.  
  693.  The resulting file is a binary file and should be uploaded to a VM machine as 
  694.  such. No EBCDIC/ASCII conversion should be used. However, on a VM host, the 
  695.  record structure of a PSEG is necessary for it to be correctly interpreted by 
  696.  the VM tools. On non VM systems, files do not have a record structure. 
  697.  Therefore after uploading, the PSEG files must be 'fixed'. You need a tool, 
  698.  like FIXL3820 EXEC to do this. Basically, each PSEG files record starts with a 
  699.  0x5a character, and this can be used to delineate records. 
  700.  
  701.  PSEG files are a multiple of 8 pixels wide, so this code writes a file with 
  702.  the width the next multiple of 8 pixels wide. The right edge is padded with 
  703.  white pixels. 
  704.  
  705.  double 
  706.         There is a scale factor in the PSEG header. By specifying this option, 
  707.         the scale factor is written as double the usual value. 
  708.  
  709.  The Bitmap file format support help panel lists other supported file formats. 
  710.  
  711.  
  712. ΓòÉΓòÉΓòÉ 2.15. GEM Raster ΓòÉΓòÉΓòÉ
  713.  
  714. Files with the .IMG extension are recognised as GEM Raster files. 
  715.  
  716. The GEM Raster file format is an old format, found primarily on the Atari 
  717. platform. 
  718.  
  719. It has a basic flavor in which :- 
  720.  
  721.       1 bpp bitmaps can only be black and white. 
  722.  
  723.       4 bpp bitmaps can only use a fixed 'standard' palette, or be greyscale. 
  724.  
  725.       2,3,5,6,7 and 8 bpp bitmaps can only be greyscale. 
  726.  
  727.       24 bpp bitmaps are not supported. 
  728.  
  729.  In addition there are XIMG extensions to the format :- 
  730.  
  731.       1-8 bpp bitmaps can contain a palette. 
  732.  
  733.       24 bpp bitmaps are now allowed. 
  734.  
  735.  Input 
  736.  
  737.  This code can read all of the above, with the usual proviso that 2 and 3 bpp 
  738.  are rounded up to 4 bpp, and 5,6 and 7 bpp are rounded up to 8. 
  739.  
  740.  Output 
  741.  
  742.  GBM will write all the above formats, and where there are choices, the 
  743.  following options can be used :- 
  744.  
  745.  grey 
  746.         GBM writes 4 bpp files by mapping them to the standard palette by 
  747.         default. The non default behaviour of mapping to a grayscale can be 
  748.         enabled by this flag. 
  749.  pal 
  750.         When writing 4 or 8 bpp files, this option tells GBM to write an XIMG 
  751.         format file with the palette included. 
  752.  pixw=N,pixh=N 
  753.         This overrides the default pixel dimensions in the header. The default 
  754.         is 85 by 85 microns. 
  755.  
  756.  Note that Image Alchemy 17 appears to assume a different standard 16 colour 
  757.  palette when converting to GEM Raster format. This disagrees with all the 
  758.  testcase images currently encountered. 
  759.  
  760.  The Bitmap file format support help panel lists other supported file formats. 
  761.  
  762.  
  763. ΓòÉΓòÉΓòÉ 2.16. Portrait ΓòÉΓòÉΓòÉ
  764.  
  765. Files with the .CVP extension are recognised as Portrait files. 
  766.  
  767. These files hold a single 512x512 24bpp RGB image. Some photographers in 
  768. Germany hand you a disk containing a .CVP file when you get your passport 
  769. pictures taken. You can return later with the disk and get further prints made. 
  770.  
  771. Now with GBM supporting this format, you can convert to and from other file 
  772. formats and use paintbox programs to remove those ugly pimples... 
  773.  
  774. Pixels are not square in this file format, so images when loaded appear 
  775. horizontally stretched. GBM leaves it up to the user to rescale the image to 
  776. look nice. Scaling horizontally by a factor somewhere between 0.75 and 0.8 
  777. gives a pleasing effect. 
  778.  
  779. Of course, it is important to remember that Portrait files only hold 512x512 
  780. images, and if you take an image from elsewhere and convert to Portrait, the 
  781. image will be printed thinner at the photographers due to this non-square-pixel 
  782. problem. 
  783.  
  784. The Bitmap file format support help panel lists other supported file formats. 
  785.  
  786.  
  787. ΓòÉΓòÉΓòÉ 2.17. JPEG ΓòÉΓòÉΓòÉ
  788.  
  789. The following file extensions 
  790.  
  791.   .JPG .JPEG .JPE
  792.  
  793. are recognised as JPEG files. 
  794.  
  795. Technically it is the JFIF type of JPEG files which are supported. 
  796.  
  797. 8 bpp (greyscale) and 24 bpp files may be read. 
  798.  
  799. Only 24 bpp data may be written. 
  800.  
  801. Output 
  802.  
  803. Bitmaps can be written with varying degrees of quality (ie: degrees of 
  804. lossyness of the compression). They can also be written in a simple progressive 
  805. manner. 
  806.  
  807.  quality=Q 
  808.         Causes the file to be written at quality Q, where Q is a rather 
  809.         arbitrary measure. Q can be in the range 0 to 100, with a reasonable 
  810.         default of 75. 
  811.  prog 
  812.         Causes the file to be written as a progressive JPEG. 
  813.  
  814.  GBM can be compiled up either with or without support for JPEG. If you don't 
  815.  see JPEG amongst the list of supported file formats on the File Open dialog 
  816.  box, then you are using a GBM.DLL without support. 
  817.  
  818.  The JPEG support for GBM is provided by the Independant JPEG Groups JPEGLIB 
  819.  library, version 6a. It may be freely used provided the IJG are credited 
  820.  (hence its use in GBM, and this paragraph in the online help). 
  821.  
  822.  The code to interface GBM to IJG 6a was written by Mark Lisowski 
  823.  <mlisowski@aixterm1.urz.uni-heidelberg.de>. I have made a couple of minor 
  824.  modifications. 
  825.  
  826.  The Bitmap file format support help panel lists other supported file formats. 
  827.  
  828.  
  829. ΓòÉΓòÉΓòÉ 2.18. Others ΓòÉΓòÉΓòÉ
  830.  
  831. Support for all the bitmap file formats may be added at any time, without 
  832. application writers being aware of it. 
  833.  
  834. Any new formats will be listed in the dialog filetype combobox, although the 
  835. help may not (yet) have an entry for them. 
  836.  
  837. The Bitmap file format support help panel lists other supported file formats.