GBM Change Log
11-May-1992 Initial general release.
29-Nov-1993 Supplied to IBM OS/2 Developer Connection.
01-Aug-1994 Submitted to Internet hobbes.nmsu.edu.
10-Jan-1995 Added gbm_version(), better error checking, const's.
Added clarification on LZW 'software patent'.
Submitted to hobbes.nmsu.edu.
16-Jan-1995 Added support for Portrait files (.CVP files).
21-Mar-1995 Fixed palettes in XIMG GemRas files (thanks Eero).
Fixed GIF writing transcol=edge, & reading local colour tables.
Added GBMLOGO.EXE to ease use of MAKELOGO.EXE on DevCon CD 6.
16-May-1995 Distribution now uses InfoZIP ZIP.EXE, not PKZIP.EXE 2.04g.
Added Product Information dialog box to GBMV2.EXE.
Fixed GBMLOGO.EXE error message trap for non 640x400 bitmaps.
25-Mar-1996 Improved Bitmap reader to tolerate bad #colours in header.
Fixed reading XBitmaps with digits in their identifiers.
Added support for ilace flag on GIF output.
01-Apr-1996 Fixed reading XBitmaps with other chars in their identifiers.
Fixed interlaced GIF support.
Added Win32 makefile and compilability.
Added ability to cause GBM.DLL to use user defined I/O funcs.
Added accessibility of I/O funcs used by GBM.
16-Apr-1996 Applied fixes found by Wonkoo in 1/4/1996 release.
Increase warning levels for OS/2 compile and cleaned up source.
Added /Os- to work around C-Set++ bug.
29-Apr-1996 Applied fix to GIF/TIFF readers found by David Wendt.
19-Jun-1996 Applied fixes found by Ralf and Andreas.
Fixed RLE4 Bitmap decoder (thanks for Marc for bug report).
28-Oct-1996 Changed over from IBM C-Set++ to IBM VisualAge C++ with CTC305.
Fixed 16bpp display bug in GBMV2.EXE.
18-Nov-1996 Added darkfg option on 1bpp BMP writing.
Fixed printout of 1bpp bitmaps problem.
01-Feb-1997 Changed colour->greyscale coefficients, as Wonkoo suggested.
Added JPEG support.
Changed documentation to HTML.
Submitted to Internet hobbes.nmsu.edu.
01-May-1998 Added initial Linux port.
Support GIF files without EOI code in compressed data.
Included source for OS/2 PM Scroller control.
12-Jul-1998 Fixed writing 1bpp PCXs with reverse palettes (ta Wonkoo).
Fixed OS/2 c0000005 Trap by increasing stack size (ta Gunter).
01-Jan-1999 Added OS/2 _System Gbm_ entrypoints.
Added support for filenames starting with -, via -- convention.
Initial port to 32 bit DOS, via Watcom C/C++ and CauseWay.
20-Jan-1999 Fixed reading of .pgm palettes (ta Wonkoo Kim).
Fixed 2 low probability bugs in LZW encoders in GIF and TIFF.
?/?/1999 Change to gbmpgm.c and gbmppm.c to use \n in header.
Splitting out of OS/2 specific stuff to seperate package.
Fixed 32 bit DOS port to work properly with JPEG support.
21-Nov-1999 Fixed reading OS/2 bitmaps with < 2**N colours.
04-Jan-2000 Fixed reading of 24 bit GemRas image files.
12-May-2000 Improved TIFF and GIF LZW readers corrupt data detection.
Improved TIFF LZW decompressor to work if EOI missing (ta Doug).
31-Dec-2000 A few minor tweaks to make source more friendly to Mac compiler.
Basically factored in Karl Timmermann suggestions, fixed a few
minor signed/unsigned char problems, and removed some #includes.
05-Feb-2001 gbmsize -a option, Jeroen Mosterts idea.
12-Feb-2001 gbmbpp -c palNbpp options to map to user defined palette.
18-Feb-2004 Added 4x4x4 truncate, halftone and error-diffuse functions.
Added gbmbpp -m 4x4x4 option.
24-Aug-2005 Heiko Nitzsche:
Added PNG support via Libpng 1.2.8 and Zlib 1.2.3.
28-Sep-2005 Heiko Nitzsche: GBM version 1.30
TIF support:
Replaced original TIF support by Libtiff 3.7.3.
This adds many additional compression schemes like LZW (with, w/o predictor),
PackBits, JPEG, Deflate, CCITT and more. Simple CMYK (32, 64 bpp) import is
available. Now also 32 bpp (with alpha channel), 48 bpp and 64 bpp (with alpha
channel) import and export is available. The alpha channel is available to the
application if option ext_bpp is used for import.
Single bitmaps of multipage TIFFs can be extracted.
PNG support:
PNG support from previous release got some fixes and was extended.
Now also 16 gray level, 32 (with alpha channel), 48 and 64 bpp (with alpha channel)
import and export is available. Transparency and user defined background is
supported as well. The alpha channel is available to the application if option
ext_bpp is used for import.
For backward compatibility the extended color depths must be explicitly enabled
by the client (see option ext_bpp) otherwise bitmaps downsampled to 24 bpp are
provided.
GBM command line tools:
The following tools have been extended to support 32, 48 and 64 bpp:
gbmsize, gbmhdr, gbmref, gbmsub, gbmgamma
A new format converter gbmconv has been added (also supports extended bpp).
02-Oct-2005 Heiko Nitzsche: GBM version 1.31
PPM support: (algorithms replaced)
Can now also read and write 48 bpp RGB files.
Reading a bitmap from a multipage file is now possible.
12-Dec-2005 Heiko Nitzsche: GBM version 1.32
TIF support:
Update to Libtiff 3.7.4
Fix decoding of separated RGB tiffs
Fix decoding of non-separated CMYK tiffs (8/16 bits per channel)
GBM File Dialog:
Redesign to match standard file dialog (eComStation)
Add bitmap preview
08-Mar-2006 Heiko Nitzsche: GBM version 1.35
Reworked GBM documentation.
OS/2 compiler support extended:
GBM.DLL, command line tools, GBM file dialog, GBMV and GBMV2 can
now also be compiled with Open Watcom 1.4. IBM Visual Age C++ for
OS/2 is still supported. Binaries created with Open Watcom are
fully compatible with older VAC builds (_Optlink is supported).
The makefiles use nmake syntax but you can use "wmake /ms /f makefile.wat"
to compile with Open Watcom's wmake.
Regression tests:
A simple set of regression tests has been created. See gbmtest directory.
BMP support:
Add support for reading RLE24 compressed bitmaps
Code changes:
All bitmap format descriptions have been moved to gbmdesc.h to
support simplified localization.
API extensions:
New APIs have been added:
1. gbm_restore_io_setup()
2. gbm_read_imgcount()
3. Compiler independent modes for gbm_io_open() and gbm_io_create()
are now provided. Use only the new GBM_O_* modes for new applications!
The defined values are backward compatible to VAC++ 3.0 to keep
compatibility with older applications.
4. gbm_io_lseek() should only be used with the new compiler independent
origin defines GBM_SEEK_*. The new definitions are backward compatible
to VAC++ 3.0 to keep compatibility with older applications.
The import library gbm.lib does reflect the extended API.
If your application has to be compatible to GBM.DLL releases
up to 1.32, you should link against gbmorg.lib. New APIs
will not be available then. You should still use the new defines.
Supported multipage image formats: BMP, GIF, TIF, PPM, SPR
(For all other image formats, the header is tested first and
on successful detection, 1 is reported.)
GBM command line tools:
gbmhdr is now able to display all bitmaps of multipage images.
The reported index can be used to reference a specific bitmap
by using option index=n in all command line tools.
Supported multipage image formats: BMP, GIF, TIF, PPM, SPR
24-Mar-2006 Heiko Nitzsche: GBM.DLL 1.36, GBMDLG/GBMV2 1.23
GBM.DLL:
* TIF support:
Update to Libtiff 3.8.2
Fix JPEG decoding via RGBA reader for YCbCr JPEGs
GBM File Dialog:
* Fix bitmap preview, sometimes the bitmap was not shown due to a scaling issue
29-Mar-2006 Heiko Nitzsche: GBM version 1.37
Some small performance optimizations for color mapping in TIF, PNG and PPM
when importing/exporting.
GBM File Dialog 1.24:
* Bitmap preview enhanced
If options are entered into options field and the field loses focus,
they are now interpreted for the preview. ext_bpp is supported as well
but because OS/2-PM only supports 24 bpp the bitmap is downsampled
for the preview.
* Bitmap info beside preview image extended to show also number of
contained pages if a recent GBM.DLL is found.
* Fix dialog resource issue with IBM RC compiler (get rid of CTLDATA at VALUESET)
which caused a crash with IBM VAC compiled GBMDLG.DLL. OpenWatcom wrc
didn't cause any issues.
Future? Palette Manager capability in GBMV.EXE and GBMV2.EXE?
Non-scaled and fixed scale print for GBMV2.EXE?
Special logic for print to 1bpp and 3bpp printers for GBMV2.EXE?
Photo-CD, saving RLE-Bitmap, G3-Bitmap for GBM.DLL?
My free time is scarce - don't hold your breath!