https://github.com/superilu/dosview
Minimal image converter/viewer for MS-DOS
https://github.com/superilu/dosview
bmp jpeg ms-dos png tga webp
Last synced: about 2 months ago
JSON representation
Minimal image converter/viewer for MS-DOS
- Host: GitHub
- URL: https://github.com/superilu/dosview
- Owner: SuperIlu
- License: other
- Created: 2023-11-03T13:56:10.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2025-01-04T13:26:44.000Z (9 months ago)
- Last Synced: 2025-03-30T21:33:16.654Z (6 months ago)
- Topics: bmp, jpeg, ms-dos, png, tga, webp
- Language: C
- Homepage:
- Size: 70.7 MB
- Stars: 54
- Watchers: 4
- Forks: 1
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# DosView
This is a quick hack for an image viewer/converter for MS-DOSPeople on [DOS ain't dead](https://www.bttr-software.de/forum/forum_entry.php?id=20792) asked if it would be possible to create such a program for MS-DOS supporting modern image formats. As I had quite a lot of the necessary code already available from [DOjS](https://github.com/SuperIlu/DOjS) I decided to give it a try.
`DosView` uses Allegro to display the images, it should support all available VESA modes.
The default screen format is 640x480 with most number of bpp, see below for other options.Please note: Although `DosView` should work from a i386 upwards, this programm can eat huge amounts of RAM (>64MiB) if you feed it large images and/or screen sizes.
**Binary downloads are available on the [Releases](https://github.com/SuperIlu/DosView/releases) page.**
`UPXVIEW.EXE` is the same binary as `DOSVIEW.EXE` but compressed with [UPX 4.2.1](https://upx.github.io/).The source is on [GitHub](https://github.com/SuperIlu/DosView/)
# Usage
## Supported formats
### Reading
- BMP
- PCX
- TGA
- LBM
- QOI
- JPG
- PNG
- WEBP (using the `.WEB` file extension)
- TIFF (using the `.TIF` file extension): only first image
- JPEG 2000 (using the `.JP2` file extension)
- PBM PPM
- RAS
- GIF: only first image
- PSD: composited view only, no extra channels, 8/16 bit-per-channel
- HDR: radiance rgbE format
- PIC: Softimage PIC, untested### Writing
- BMP
- PCX
- TGA
- QOI
- JPG: quality can be controlled with `-q`.
- PNG
- WEBP (using the `.WEB` file extension): always lossy, quality can be controlled with `-q`.
- TIFF (using the `.TIF` file extension), LZW compression only
- JPEG 2000 (using the `.JP2` file extension)
- PBM
- RAS
- GIF: uses dithering which is extremly slow## Command line arguments
```
Usage:
DOSVIEW.EXE [-hkl] [-q ] [-r ] [-s ]
-h : show this screen.
-l : list know screen modes.
-r : screen mode to use (use -l for a list).
-s : do not show the image, save it to outfile instead.
-f : scale saved image, <1 reduce, >1 enlarge (float).
-q : Quality for writing JPG/WEP/JP2 image (1..100). Default: 95
```## Keys
- `ESC`/`Q`: quit
- `H`: toggle help
- `F`: show actual size
- `Z`: fit to screen
- `I`: toggle image info
- `PAGE UP`/`9`: increase zoom
- `PAGE DOWN`/`3`: decrease zoom
- `UP`/`8`: move image up
- `DOWN`/`2`: move image down
- `LEFT`/`4`: move image left
- `RIGHT`/`6`: move image right
- `SHIFT`: move/scale 2x as fast
- `CTRL`: move/scale 4x as fast
- `ALT`: move/scale 8x as fast`SHIFT`, `ALT` and `CTRL` can be used in any combination.
# LICENSE
Please see the attached [LICENSE](LICENSE) file for the license of all involved libraries/files.# Known problems
* error handling is a mess
* code is badly documented
* PIC is untested (I could not create an image)
* some versions of DOSBox-X can't write TIFF images (known issue, SQLite3 has problems in these versions, too)
* can be very slow on old machines (especially saving/dithering)
* eats HUGE amounts of memory (we are talking >128MiB to encode a 2672x2004 JPEG2000)
* if loading/saving fails you get no info why (if you are not running a debug build that is)
* image conversion always needs a working display mode (Allegros fault)# Changelog
### 1.7 / January 4th
* Updated libjpeg to 9f.
* Updated libjasper to 4.2.4.
* Fixed a crash when running out of memory during loading/display.
* Fixed version number when running DosView.
* Added key to display help overlay in view mode.
* Patched `3rdparty\allegro-4.2.2-xc-master\src\bmp.c` to support all BMP formats mentioned in https://en.wikipedia.org/wiki/BMP_file_format#Bitmap_file_header (backport from allegro5).
* Fixed DE LSM for FreeDOS.### 1.6 / January 3rd, 2025
* added FreeDOS package creation### 1.5 / November 26th, 2023
* Fixed Allegro VESA driver
* Added screen mode autodetection### 1.4 / November 24th, 2023
* new screen resolutions and change in command line
* (hopefully) fixed bug in image zooming when image was not 4:3 and a multiple of the resolution### 1.3.1 / November 12th, 2023
* fixed color palette error### 1.3 / November 12th, 2023
* added GIF
* added PSD
* added HDR
* added PIC
* added an UPX compressed EXE
* enabled dithering
* added 8bpp display mode
* fixed another scaling error
* fixed error when reading certain PNGs### 1.2 / November 8th, 2023
* added NetPBM formats
* added Sun RAS format
* added imiage scaling### 1.1 / November 4th, 2023
* added TIFF
* added JPEG 2000
* fixed zoom and documentation
* added 24/32bpp autodetection
* added image info
* added num pad keys
* added check to list modes### 1.0 / November 3rd, 2023
* first public release