88 lines
3.3 KiB
Plaintext
88 lines
3.3 KiB
Plaintext
Gif2BGI
|
|
--------
|
|
|
|
Program to display images saved as GIF files on IBM PC display devices using
|
|
the BGI (Borland) driver interface.
|
|
|
|
The program has few stages as follows:
|
|
1. Reads GIF file header and determines size of it.
|
|
2. Dynamically allocate enough memory to hold all the image internally.
|
|
One byte per pixel is always allocated, so a little bit more than
|
|
width*height (of screen, not image) bytes are required.
|
|
3. Reads all the image in. Interlaced images are read correctly in, although
|
|
they are displayed sequentially.
|
|
4. Display first image using the defaults as set by the command line option.
|
|
5. Goes to interactive mode. For full description of the interactive mode
|
|
see below
|
|
|
|
|
|
Usage:
|
|
------
|
|
|
|
Gif2BGI [-q] [-d BGI Directory] [-u UserBGIDrv.Mode] [-z ZoomFactor] [-b]
|
|
[-h] GifFile
|
|
|
|
If no GifFile is given, Gif2BGI will try to read stdin for GIF file.
|
|
|
|
|
|
Memory required:
|
|
----------------
|
|
|
|
Screen.
|
|
|
|
|
|
Options:
|
|
--------
|
|
|
|
1. [-q] : quite mode. Default off on MSDOS, on on unix. Controls printout
|
|
of running scan lines. Use -q- to turn off.
|
|
2. [-d BGI Directory] : Where should we look for default drivers (as supplied
|
|
by Borland). For example '-d c:/tc/bgi'.
|
|
3. [-u UserBGIDrv.Mode] : Specifies user defined BGI driver. If for example
|
|
you have a BGI driver for your special vga called MYVGA.BGI and you want
|
|
to run it in mode 2 then type '-u c:/tc/bgi/myvga.2'. Note the absolute
|
|
path to the driver must be specified. Also note that we use '/' and not
|
|
'\' so they would not be treated as options.
|
|
4. [-z ZoomFactor] : Sets zoom factor of the image. Zoom factor should be
|
|
power of 2 up to 256. Default is 1 (no zoom).
|
|
5. [-h] : print one command line help, similar to Usage above.
|
|
|
|
Interactive mode:
|
|
-----------------
|
|
|
|
Once the image is displayed, the program goes into interactive mode
|
|
which recognizes the following commands:
|
|
1. C - get Color and Position.
|
|
In this sub menu, a cursor appears, and the Color of the pixel the cursor
|
|
is on, with its position in GIF file screen are printed. The 4 arrows may
|
|
be used (shifted for faster movement) to move the cursor. Any other key will
|
|
abort this sub mode.
|
|
2. D - Zoom Down by factor of 2 unless current zoom factor is 1.
|
|
3. R - Redraw the image.
|
|
4. S - print Status of image and program.
|
|
5. U - Zoom Up by factor of 2 unless current zoom factor is 256.
|
|
6. 4 arrow keys can be used to pan to the desire direction, if the image
|
|
overflow to that direction. If, on the other hand, the image fit into the
|
|
Hercules device, arrow keys are ignored. The panning steps are 1/2 screen if
|
|
not on image end.
|
|
7. ' ' - Space bar may be used to abort current image drawing.
|
|
8. ESC - Escape key may be used to abort the program.
|
|
|
|
|
|
Notes:
|
|
------
|
|
|
|
As no color quantization is used in this program if a GIF image has more
|
|
colors than the BGI driver support, this program will abort.
|
|
This driver is optimized for drivers with one byte per pixel (256 colors)
|
|
and will run MUCH faster in these cases.
|
|
|
|
|
|
Bugs:
|
|
-----
|
|
|
|
For some reason I could not figure out on my ATI wonder card, int 10h call
|
|
10h (AH = AL = 10h) to set the color registers sometimes result with wrong
|
|
colors. Direct access of the card registers gives correct results. I dont do
|
|
that to make this program portable but if your driver gives wrong colors it
|
|
is probably because it is using this bios call. Any one has anything to add? |