A JPEG Viewer for QBasic

This date marks the release of my JPEG decoder written entirely in QuickBasic. It was the first of its kind, released almost concurrently with Petter Holmberg’s own decoder, which initially supported only grayscale JPEG files.

Do not ask what in the world possessed me to do such a thing, but it’s been done, so I might as well put it up for all to see. I am releasing it as freeware (not public domain), so please give credit where it is due. If you make significant enhancements or additions, I’d like to see them. If you use it as part of a larger software product, just send me a screen shot of it in action.

I hadn’t even realized, but someone else (namely Antoni Gual) has been working on the JPEG viewer after I stopped. The version created by him contains fairly significant improvements, so I would suggest using this version for any real applications: Antoni’s JPEG Viewer 2.0 for QuickBasic.

Since then I’ve also made a simple translation of the original JPEG viewer from QB to Visual Basic. The translation itself was trivial, so why not: JPEG Viewer for Visual Basic.

The following older versions are here for historical purposes only, to preserve a small nugget of QB history:

JPEG Viewer for QBasic — This is the original decoder that I made, circa April 1999. Notice that it’s compatible with QBasic 1.1, since it uses no interrupts, no assembly routines, just plain BASIC. The downside is that this viewer is forced to use SCREEN 13, which is a 320×200 video mode with 256 colors. To compromise for this, the viewer automatically sets up a grayscale palette, and displays images in grayscale only (which is easy because all it needs to do is display the luminance (Y) channel of the image). This is actually a little faster than the others below, because this skips the conversion from YCbCr to RGB color space.

JPEG Viewer for QB with VESA support — This version of the viewer is for QuickBasic only. It uses a tiny SVGA library that I speed-wrote in assembly. So this version will display images in full color, in any VESA-compatible screen mode you choose.

JPEG Viewer for QB with Mode-X support — This version is also for QuickBasic only. It uses the “Mode-X” feature of VGA cards to create higher-resolution video modes with 256 colors. This is basically no different than the original SCREEN 13 viewer, just a little higher resolution.

Here it is, being revived in the modern DosBox emulator:

And here it is actually loading a JPEG file in SCREEN 13:

P.S. Thanks for the shout-out, Hackaday!

One thought on “A JPEG Viewer for QBasic”

Comments are closed.