Window: Executable or Text Version

Taking two picture files of any size, this program creates a smooth circular window in the "top" picture, allowing you to see the "underlying" picture through the window. The window is moved around using the mouse. I've only written the program as Assembly Language enhanced, since the window was very jerky under pure BASIC. With assembler, it's perfectly smooth, making 129,600 calls to a 200-instruction Assembly Routine every time the window moves by just one pixel!


Slide Show: Executable or Text Version

Enables you to randomly view a Folder of .JPG or .BMP pictures, each one expanding onto the screen for a chosen number of seconds. Revised 1st November 2008 to properly preserve aspect ratios of all pictures.

Jigsaw: Executable or Text Version

Taking a any jpg, bmp or gif file, the program enables you to create a jigsaw pattern, which then slices up the bitmap in that pattern, displays all the pieces jumbled up, then displays them reassembled one-by-one.

Once the pictures appear, just keep pressing the spacebar to cut the activity short and move on.


Spyglass: Executable or Text Version

Crystal Ball: Executable or Text Version

These are similar kinds of programs. SPYGLASS allows you to magnify (using the mouse wheel) a circular area of a jgp or bmp, whereas CRYSTAL BALL allows you to view a jpg or bmp through a Crystal Ball made of Water, Diamond, Ruby or Sapphire with the correct Refractive Index.

NOTE: To run the TEXT versions, you will have to provide your own background picture called "BPic.jpg" residing in the same folder as the program.

Spline Resize: Executable or Text Version

This facility enables you to MASSIVELY resize a bitmap, say from 300x200 up to 2048x1536, and still get a decent picture. It achieves this using a numerical mathematical technique called
Cubic Spline Interpolation. The principle is simple, but the algebra looks complicated. It involves determining the coefficients for a cubic equation (called a Lagrange Polynomial) to smoothly pass from one original pixel to the next. The number of calculations required is fairly stupendous, so I've only written the algorithm in Assembler.

Return to Top Page

Next Page