Introduction

PlayIt v1.2 was originally designed to allow playback of animation sequences generated from a ray tracer.  Each frame would be loaded and displayed in sequence.  It has since grown to include file conversion, movie playback, and simple image manipulation.  This program is constantly undergoing changes and additions.  I hope you find it useful.

PlayIt is an MDI application.  You will see a different menu depending on whether the current window is displaying an image or an animation.  Some functions are the same on both menus, but the are a number of differences.

Please choose from the topics below for more information about the system.

Menu for Images

Menu for Animations

Benefits of Registration


Menu for Images

Whenever the current window is displaying an image, the following choices are available:

File Menu	- Command to manipulate files

Edit Menu	- Commands that affect the clipboard

Image Menu	- Image processing functions.

Zoom Menu	- Commands that affect the display size

Window Menu	- Commands that affect windows

Help Menu	- When you need help.


Menu for Animations

Whenever the current window is displaying an animation sequence, digital video, or movie, the following choices are available:

File Menu	- Command to manipulate files

Animation Menu	- Describes the animation menu.

Zoom Menu	- Commands that affect the display size

Window Menu	- Commands that affect windows

Help Menu	- When you need help.


File Menu

The commands in this menu allow you to load images, animation sequences, movies, and also to save images.  The commands are:

Open	- Load an image for display.

Save	- Save the currently displayed image in it's native format

Save As	- Save the currently displayed image or movie in a new format.

Load Sequence	- Load a sequence of frames.

Print	- Print the currently displayed image

Printer Setup	- Change the settings for the default printer.

Exit	- Exit to Windows.


Open File
Open

This command presents you with the standard Windows open dialog box.  You can browse directories to find the file you want to load, or you can type the full path directly.  PlayIt will attempt to determine the image format based on the file's extension.  If the extension is unknown, the format selected as a filter will be used.

PlayIt supports the extended DIB format as described for Video for Windows.  If your BMP image has been compressed using Cinepak Supermatch, Intel's INDEO, or Microsoft Video 1 compression, it will be correctly displayed.

Please note that very large AVI files may cause the video driver to report a general protection fault.  If this happens, try choosing a smaller file or a compressed version.

The extensions recognized by PlayIt are AVI, BMP, FLI, GIF, PCX, TGA, and TIF.


Windows or OS/2 format device independent bitmaps with 16, 256, or 16.8 million colors.  Windows format BMP images also support 32,767 and 65,535 color images as well as compression.  Only 8 and 24 bit BMP images can be manipulated by image processing, or saved in other formats.  PlayIt does not support output of compressed BMP images.


CompuServe GIF87a or GIF89a formats.  GIF extension blocks are ignored by PlayIt so your GIF89a images may not look correct.  PlayIt will attempt to display the GIF as best it can.


ZSoft PCX in 256 or 16.8 million colors.  PCX is a compressed format that typically achieves a 2:1 compression ratio.


TARGA format in 256 or 16.8 million colors, compressed or uncompressed.  Compressed TARGA will usually get a 2:1 compression ratio.


Tagged Image File Format in 256 or 16.8 million colors.  TIFF images may be grayscale (class G), palette based (class P), or in RGB (class R) format.  Only uncompressed images are supported.


Microsoft Audio/Video Interleave.  The recommended frame size is 160 x 120 with 8 or 24 bit color depth.  All valid AVI files are supported with complete sound playback.


FLI and FLC are animation formats produced by Autodesk Animator and Animator Pro.  This format does not support sound, but is quite popular for audio-less video due to its standard use of frame-delta compression (storing only the changes from frame to frame).

Note: Delta frames in an FLC movie are not yet supported because I have yet to encounter one.  If you have a FLI or FLC movie that does not play back correctly, please let me know about it.


Save, Save As

This command presents you with the standard Windows save dialog box.  You can browse directories to find where you want to save the file, or you can type a full path directly.  You will be prompted for confirmation before overwriting an existing file.

There are two variations as to what gets saved and how depending on whether the current window is displaying an image or an animation.  Choose from the topics below for more information:

Saving Images

Saving Animations


Saving Images

PlayIt will normally save the image currently displayed as if it were displayed at 100% original size.  In other words, zooming the image does not affect what gets saved.  There is one exception to this rule (see below).

The image will be normally be saved using the same color resolution as the image loaded.  If you load a 24 bit image, it will be saved as a 24 bit image even if it is being displayed as an 8 bit image.  The exception to this rule is if the image has been converted to grayscale or you choose the save format Display as BMP.

If you select the save format Display as BMP, whatever is being displayed in the window, at whatever level of zooming, will be saved as an 8 bit Windows format BMP image.  This is the only way to save a 24 bit color image as an 8 bit color image.  Due to the way this works, only what you can see in the window will be saved.  For best results, maximize the window before saving the image with this format.  If you don't, you could end up with part of your display being saved at the bottom of the image if it doesn't fit in the window.

Formats supported for saving images are:

OS/2 Format BMP	- Uncompressed

Windows BMP	- Uncompressed

Display as BMP	- Uncompressed

ZSoft PCX	- Compressed

Targa (TGA)	- Compressed or Uncompressed

TIFF (TIF)	- Uncompressed

Note: Compressed images will use less disk space.  Targa compression is slightly better than PCX compression.

See also:

Zooming images, Converting to grayscale


Saving Animations

PlayIt will save the image currently displayed as if it were displayed at 100% original size.  In other words, zooming the image does not affect what gets saved.  You can save an animation sequence or a FLIC as a sequence of frames or as an AVI movie.  Unless you specify the AVI format, the output will be a series of files with the same base name and the frame number as the extension.

Because PlayIt does not compress frames when writing AVI files, you may end up with VERY large files when saving a FLIC as an AVI.  Also, since FLICs start with dimensions of 320 x 200, and the AVI format recommends 160 x 120, you may not get 30 fps playback after conversion.  PlayIt can create AVI files with frame sizes as large as 1024 x 768 x 24 bit, but don't expect to be able to play them back at any reasonable speed.

Formats supported for saving animations are:

OS/2 Format BMP	- Uncompressed

Windows BMP	- Uncompressed

ZSoft PCX	- Compressed

Targa (TGA)	- Compressed or Uncompressed

TIFF (TIF)	- Uncompressed

A/V Interleave (AVI)	- Uncompressed

Note: Compressed images will use less disk space.  Targa compression is slightly better than PCX compression.


Load Anim Sequence

This command allows you to load several frames in an animation sequence.  You will be presented with a dialog box in which you enter the number of frames to load, the base name of the sequence, and the image format of the frames.

It is not recommended that you load more than 15 frames.  Unregistered versions of PlayIt have an upper limit of 30 frames for a sequence while registered versions have an upper limit of 60 frames.  Keep in mind the amount of memory needed to hold each frame in memory.  A 24 bit, 640x480 image requires almost 1MB.

The animation sequence must be named as <base>.<#> where the frame number is the file's extension.  You must supply the base name, and PlayIt will determine the extension.  A valid sequence would be:

c:\anim\balls.0

c:\anim\balls.1

c:\anim\balls.2

c:\anim\balls.3

etc...

The image format of each frame must be the same for all frames in the sequence.  The valid formats are the same as listed for the Open command, and may be 8 or 24 bit images.  The color resolution of each frame does not have to be the same for all frames.  You can mix 8 and 24 bit frames, but you will notice the difference.

Once an animation sequence is loaded, you can use the commands in the animation menu to play the sequence.  You can also zoom the image while playing the sequence.

See also:

Animation Menu, Zooming images


Print

This command will present you with the standard Windows print dialog box.  You can click on the Setup button to configure the selected printer, or choose a different printer.  When you have selected the correct printer, click on the OK button to print image.

Large or complicated images may take some time to print.  Please be patient while PlayIt performs a dithering feat of excellence.  The size of the image printed is determined from the current zoom factor.  If the zoom level is 200% of normal size, the image will be printed at twice normal size.


Printer Setup

This command will present you with a list of all printers that you have installed under Windows, and highlight the default printer.  You may select a printer and click on the Setup button to see that printer's configuration dialog box.

Clicking the OK button will cause the highlighted printer to become the default printer for Windows.


Edit Menu

The commands on this menu affect the Windows clipboard.  There are only two choices:

Copy	- Copy the selected area to the clipboard

Paste	- Paste the contents of the clipboard


Copy

This command will cause the currently selected area of an 8 or 24 bit image to be copied to the clipboard.  If no area has been selected, or the image does not have 8 or 24 bit color, the entire image will be copied.  The image will be copied as though it were displayed with a zoom factor of 100%.  In other words, zooming does not affect what gets copied.

See also:

Selecting an area, Zooming images


Selecting an Area

When an image window is active, you may use the mouse to select an area of the image to copy to the clipboard.  Simply click the left mouse button and hold it down while dragging the mouse to outline the area.  The dimensions of the selected area will be shown on the windows title bar surrounded by square brackets.  Note that the dimensions shown relate to the image as if it were displayed at 100% normal size.

Scrolling the window will not affect the selected area, nor will changing the zoom factor.  If you select an area while displaying an image at 200% normal size, and then change to 50% normal size, the same relative area will be selected.

See also:

Zooming images


Paste

This command will paste the contents of the clipboard into a new image window.  The new image will be untitled and you will be prompted to save it before closing it.  This command will be disabled if the clipboard does not contain any device independent bitmaps.


Animation Menu

The commands in this menu allow you to manipulate the playback of an animation sequence or movie.  This menu is grayed if an animation sequence or movie is not loaded.  The commands are:

Play Forward	- Play forwards.

Play Backward	- Play in reverse.

Pause	- Pause/Stop animation.

Step Forward	- Advance one frame.

Step Backward	- Rewind one frame.

Home	- Go to first frame.

End	- Go to last frame.

Set Sequence Rate	- Set playback rate.

Configure AVI	- Set AVI parameters.


Play/Pause Animation

An animation sequence or movie can be played either forwards, or in reverse.  The exception is that Autodesk Animator FLICs cannot be played in reverse.

Except for AVI movies, all animation sequences and movies will play continuously until paused.  An AVI movie will play from the current frame to the last or first frame depending on direction of play, and then reset to the first frame.

Once an animation has begun playing, the Pause Animation command becomes available.  Restarting the animation will continue from the current frame unless you are playing an Autodesk Animator FLIC.  FLICs will always begin playback with the first frame.

Before playing an AVI movie in reverse, you must position the animation to the last frame by using the End command.  You can also play an AVI movie forwards, pause it, and then play it backwards from that point.

Tip: Try playing an AVI movie in reverse to see if there are any hidden messages in the soundtrack.  The sound will play in reverse as well.

See also:

End


Position Animation

You can position an animation sequence or movie by stepping forward one frame, stepping back one frame, and by resetting to the first or last frame.

Autodesk Animator FLICs cannot be rewound, so you will not be able to step backwards if this type of movie is loaded.

You must position an AVI movie to a frame other than the first frame before playing it in reverse.


Set Sequence Rate

This command is used to set the playback rate of an animation sequence and Autodesk Animator FLICs movies.  The value is the number of milliseconds to pause between the display of each frame, and cannot be negative.

The rate is determined by your system resources.  Trial and error is the best way to find what values to use.  An animation sequence will play back faster than a FLI movie, so use a lower number for FLICs.  This is because PlayIt decodes FLICs as they are being played.

You will probably find that after a certain value, using a lower number will make no difference.  If your system is spending 100% of it's resources to play back the animation, it will go no faster.  FLICs tend to play back at a rate of about 15 frames per second on a 486-50 if the rate is set to 30.  An animation sequence of 320 x 200 x 8 will get about 35 fps with the same setting.


Configure AVI

This command will present you with an AVI configuration dialog box.  It is fairly easy to understand.  These settings will control all software that uses the Microsoft AVI device.

It is the same dialog box that you will get if you choose the Setup button from the Drivers option in Control Panel while the AVI device is highlighted.


Image Menu

The commands in this menu allow you to manipulate the image being displayed.  Commands that are unavailable for the current image are grayed.  Except for getting information about the image, any changes made to the appearance of the image will be saved if you use the Save As command.  There is no undo command, but most commands are easily undone.

The commands in the image menu are:

Image Information	- Display info about the image

Flip Horizontal	- Flip the image around a row.

Flip Vertical	- Flip the image around a column.

Rotate Clockwise	- Rotate the image 90 degrees clockwise

Adjust Brightness	- Adjust the brightness up or down.

Gamma Correction	- Adjust the colors of an image.

Convert to Grayscale	- Convert the image to grayscale.

Colorize Grayscale	- Colorize a grayscale image.

Sharpen Image	- Sharpen the edges in an image.

Reduce Noise	- Reduce the noise in an image.

Color Histogram	- Display a histogram of colors.

Enhance Contrast	- Adjust the contrast of an image.


Image Information

This command will give you some information about the image that was loaded.  It will tell you the image's format, dimensions, and the color resolution in bits per pixel.  The dimensions and color depth are also displayed on the display window's title bar.

Note that if you convert a 24 bit image to grayscale, it will become an 8 bit image.


Flip Image

You can flip an image horizontally or vertically.  Flipping a 15 or 16 bit, or compressed, BMP image may have undesirable results.

Flipping the image horizontally will flip it about the center row, effectively creating a mirror image.  Flipping the image vertically will flip it about the center column.

If you flip an image, you can perform the same flip command to restore the image to its original position.


Rotate Clockwise

You can rotate an image 90 degrees clockwise.  You can continue to rotate the image to get back to the original image, or you can perform a combination of rotations and flipping.  Rotating a 15 or 16 bit, or compressed, BMP image may have undesirable results.


Adjust Brightness

This command will adjust the brightness of the displayed image.  You will be prompted for the value to adjust the brightness by.  The function works by adding this value to each color component in the image.  You increase the brightness with positive values, and decrease the brightness with negative values.

You can undo an adjustment by repeating the command with the negative of the value last entered.  There are some side effects to this.  If a pixel is brightened too much, it will become white.  If you then decrease the brightness, the pixel will become a shade of gray.  It will not revert to its original color.

Tip: You can produce some interesting effects by adjusting the brightness of 256 color images since this merely affects the image's palette.


Gamma Correction

This function will apply a gamma correction to the image displayed.  You will be prompted for the value to use.  The function will raise each color component of the image by the power value you entered.  Values of between 1.8 and 2.2 produce fairly good results for most monitors, but you may need to experiment.  A gamma factor greater than 1.0 will lighten the image, while a factor less than 1.0 will darken the image.

Subsequent gamma corrections will work as though it was the first correction.  For example, performing a gamma correction of 1.8 followed by a correction of 1.4 will appear as though only a correction of 1.4 was done.  There are some side effects to this.  If a pixel is brightened too much, it will become white and will not revert to its original color when you apply a second gamma correction.


Quite often a scanned image's colors will look slightly off when viewed on a monitor.  This is because of the way the phospors in the monitor work.  Gamma correcting the image is a way to compensate for this difference.  Also, when printing a color image, the output will be lighter than what appears on the screen.  Gamma correction can also compensate for this difference.


Convert to Grayscale

This command will convert an 8 or 24 bit color image to a grayscale image.  The result is also an 8 bit image, but consists of 256 shades of gray.  The function works by applying a formula to each pixel's color components to get the level of gray.  The formula is based on NTSC recommendations for color scaling and produces very good results.

If you save the image after converting it to grayscale, it will be saved as an 8 bit color image with a grayscale palette even if the saved format supports grayscale.

Once an image has been converted to grayscale, the Colorize Image command will become available.


Colorize Grayscale

This function will convert a grayscale image created with the Convert to Grayscale command to a color image.  A dialog box will be presented in which you enter the amount of red, green, and blue to apply to the image.  The function works by multiplying the level of gray for each pixel by the three color components you entered.  The result is always a 24 bit image.

Entering a value of 1.0 for the red, green, and blue components will convert the image into a 24 bit image that looks unchanged.  You can create some nice effects by applying only one color, leaving the other two set to 0.0.  For example, entering the values 1.0, 0.0, 0.0 will apply a nice red shift to the image.


Sharpen Image

This command will sharpen the edges in the displayed image by subtracting the Laplacian from the image.  There is no way to undo this command except by reloading the image.

Note:  Sharpening an image will tend to increase the existing noise in an image.


Reduce Noise

This command will attempt to reduce the amount of noise in the displayed image by averaging each pixel with its 3x3 neighbourhood.  There is no way to undo this command except by reloading the image.

Note:  Reducing the noise in an image will tend to blur the image somewhat.


An image that has been scanned in will tend to have slight imperfections, known as noise, that appear as random spots in the image.


Color Histogram

This command will compute a histogram for the red, green, and blue components of the displayed image and display each histogram in a popup window.  This command will not affect the image being displayed.  This command is useful if you wish to Enhance the Contrast in the image.


Enhance Contrast

This command will enhance the contrast in an image by clipping each color histogram to be between a low and high value that you specify.  The resulting histograms are then stretched out to include the full range of colors.  There is no way to undo this command except to reload the image.

You should first perform the Color Histogram function to obtain the minimum and maximum values for each color.  When prompted for the low and high values to use in enhancing the contrast, enter the lowest and highest values obtained from the histograms.


A histogram is a frequency distribution.  The height of each bar in the histogram indicates the relative frequency of that color value.


Zoom Menu

The image, or animation, displayed can be zoomed in or out by a number of set percentages.  Only the displayed size of the image is affected.  The actual image is left unchanged.  A zoom factor of 100% will display the image at its original size.  Values less than 100% will zoom out while values greater than 100% will zoom in.  Larger images will take longer to display.  One trick for increasing playback speed is to display the image at 50% of normal size.

An image with dimensions 200x200 at 25% original size will display as a 50x50 image.  At 200% the same image will display as a 400x400 image.

When you click on a zoom factor, the display window will be resized to fit the new display dimensions.  If the image is displayed with scroll bars, and there's enough room for the whole image, you can click on the same zoom factor (it has a checkmark beside it) to remove the scroll bars.


Window Menu

The commands available from this menu allow you to manipulate the display windows.  Each image, animation sequence, and movie is displayed in its own window.  You can arrange the appearance of multiple windows, or close them.  The commands are:

Cascade	- Display windows in cascaded form.

Tile	- Display windows in a tiled form.

Arrange icons	- Arrange minimized display windows.

Close	- Close the current display window

Close All	- Close all open display windows

Below the Close All command is a list of the currently open windows.  Select the one you want to see to make it the current window.


Cascade

This command will arrange all open display windows cascaded from the upper left corner of the main window to the lower left corner, each window overlapping each other with the current display window on top.  Minimized display windows will be arranged along the bottom of the main window.  The easiest way to see how it works is to just try it.


Tile

This command will tile all open display widows so that no two overlap.  Minimized display windows will be arranged along the bottom of the main window.  To see how it works, try it.


Arrange Icons

This command will arrange all minimized display window icons along the bottom of the main window.  To see how it works, open a number of images, minimize a few of them, move the icons around, and then choose this command.


Close, Close All

Close will close the current window.  Close All will close all open display windows.  If the image displayed in any window has been changed, you will be asked if it should be saved before closing it.  If you say it should, it will be saved.  You will be asked for a filename if the image has never been saved before.

You can also close the current window by double clicking the control box, or by choosing Close from the windows control menu.

See also:

Save


Help Menu

The commands on this menu display help on using PlayIt.  The commands are quite simple and are listed below.

Contents	- Displays this help file.

Topic Search	- Displays this help file and selects the search option.

Using Help	- Displays a help file on using the Windows help system.

About	- Displays copyright information about PlayIt.


Benefits of Registration

You may be asking yourself why you should bother registering this product.  There are a number of reasons.

First, shareware only works if the end users register the products they continue to use.  Not doing so is just as bad as stealing the software.  Shareware authors spend a great deal of time developing their products, and it gives them a great feeling to know they are appreciated.

Second, registered users of PlayIt will receive the latest version of the software, technical support, and be kept up to date on future enhancements to the software.  Since PlayIt is constantly undergoing additions and improvements, this is the easiest way to stay on top.

Third, all users registered user will not only receive the latest copy of PlayIt, but will also receive a shareware copy of a morphing system that we've been working on.  It's looking pretty snazzy.

Fourth, registered users may purchase the source code for PlayIt at a very reasonable price.  Ever want to know how FLICs work?  Interested in code that can load and save images with little more than a single function call?  Cursious to know how to play or write AVI movies?  Look no further, it's all right here.

Finally, it would really make me very happy and it really is not a lot of money.  See the file ORDER.TXT for a form which can be printed and popped in the mail.

Patrick Arial

Shamrock Systems and Technology