JoeView is an attempt at an image viewer for a variety of image formats. Help
is available at almost any time. I have implemented some unusual ways of
viewing images. It is probably worth your while to look through the section on
Viewing Strategies at this time.
ΓòÉΓòÉΓòÉ 2. Main Menu ΓòÉΓòÉΓòÉ
The main menu system is accessed by double clicking the left mouse button or by
using the system menu. You probably figured this out by now.
ΓòÉΓòÉΓòÉ 2.1. Misc. ΓòÉΓòÉΓòÉ
This menu command leads to three possible submenus.
Quit command will close JoeView, if you couldn't figure that out, try typing
"del \*.*" sometime.
Toggle Title Bar will turn on and off the main title bar. Note that you can
NOT MINIMIZE JoeView when the Title Bar is off.
Save Window Positions will store the current window locations of JoeView. This
includes the File Open Dialog and the Information Dialog.
ΓòÉΓòÉΓòÉ 2.2. Files ΓòÉΓòÉΓòÉ
This menu command does nothing by itself except bring up a second pull down
menu which has commands generally relating to file stuff. Slide Show. Open a
file. Save a file, etc. The actual commands are:
o Open
o Save
o SlideShow
o Print
ΓòÉΓòÉΓòÉ 2.2.1. Open File Dialog ΓòÉΓòÉΓòÉ
This dialog is one of the better features of JoeView and I am especially proud
of it. The dialog runs independently of the main window. You can select a new
file at any time unless JoeView prevents it, and generally you will only be
prevented from opening a file if JoeView is already trying to open a file or
you are running SlideShow.
Note: The JPEG libraries use global variables that can interfere with each
other if trying to read and write JPEG style files at the same time. If you
begin saving a file in the JPEG format and immediately try and read a JPEG
format file, JoeView will hold the read operation (and promote the priority of
the write operation) until the write is finished. This should be fairly
transparent to you.
File Mask Typically you would just enter "*.*" or "*.bmp" here. You can also
use "*.bmp;*.gif" to select multiple file extensions. If you want you could
also type in the name of a file or the full name ala "c:\file\my.bmp".
Further, you can change to a new directory fairly quickly by using
"c:\files\go_here\*.*" - This would change to the approprate drive and
directory and also set the File Mask to "*.*".
A file can be selected by typing in the file name in the File Mask entry field
or by double clicking on the files list box. Directories are changed by double
clicking in the directory listbox. Drives are changed using the pull down
listbox. The file mask entry field is where, in addition to simply typing a
file name, you may enter wild cards, like *.gif or multiple wild cards
separated by a ";" or "," for example "*.gif;*.bmp;*.tga" (no spaces)! A list
of only those files that match the mask will be shown in the files list box.
Files can be shown in either alphabetical or dated format by selecting the
appropriate button.
Confirm on delete does what it says. If you try and delete a file , it will
prompt you first. Turn it off and delete will just kill the file when you hit
the Delete button. BEWARE!!! The file deleted is the file shown in the current
file area (at the upper left side of the dialog) not necessarily the file
currently being viewed. If you only single click on a file in the files list
box it will be selected as the current file even though you are not looking at
it yet. Why does this feature exist? Often a series of images are less than
desirable to me, so the ability to cream'em all at once is useful. Just leave
the Confirm on Delete attribute on if your not sure, you will always be
prompted.
Browse Mode keeps the dialog open when not in use. This is useful if you are
going to look at a variety of files and don't want to keep opening the dialog
each time. There is a memory penalty for doing so which is proportional to the
size of the directory being viewed. When Browse Mode is active hitting Cancel
will do no more than bring the image window forward, you must turn off Browse
Mode to get rid of the File Open Dialog or you can simply use the minimize
button to get it out of the way.
Low Priority Open will cause the selected file to be read in at low priority,
giving other processes more the CPU.
There are two buttons on the lower left side of the dialog box labeled N and P.
These buttons will cause the file either next or previous relative to the
currently highlighted file to be opened. Both will cycle to either the
beginning or end of the list when going off the end. They have accelerator
keys associated with them.
One last item is the Quick Dir listbox. Go back on click on Quick Dir for the
description.
ΓòÉΓòÉΓòÉ 2.2.2. Saving an Image ΓòÉΓòÉΓòÉ
The File Save dialog is pretty simple but deserves some explanation. The Quick
Dir listbox needs some detailed explanation that can be accessed by clicking on
Quick Dir. Drive, directory, and files are listings or displays of what is
currently available. You can enter any valid directory/path combo in the Save
as: entry box. The file listing is for information purposes mostly, but if you
do click on the file it will become the entry in the Save as: box. If you
double click on a file listbox entry, that will an indication that you want to
save the current image into that file.
CAUTION:
Be sure to indicate a file type before you double click on a file.
When you select a file type, that appropriate extension is added to or changed
for the text in the Save as: entry field.
File types available are:
o GIF
o JPEG
o OS2 BMP
o Windoze BMP
o PBM (raw and ASCII)
o X11 BMP
o Sun Raster
o TARGA
All are pretty self explanatory, but it should be noted that for Windows and
OS2 bitmaps only non RLE formats are written. RLE formats can be read however.
There are two options located at the bottom of the dialog. Save at displayed
size will write the image at whatever resolution the image is currently being
displayed with. This is contrasted with the resolution that the image is
stored in memory as. See Viewing Strategies for details.
The second option is to save at low priority. Since JoeView is multithreaded
you can save a file and while it is being written to disk go ahead and start
loading a different image. Low priority will write the current file a little
slower (in theory anyway) so that you (or other processes) can use the CPU to
do more important things, like loading/looking at another image. Only one
image can be saved at a time. The menu command to save an image will be
inaccessible until JoeView has finished saving the current file.
ΓòÉΓòÉΓòÉ 2.2.3. Slide Show ΓòÉΓòÉΓòÉ
Slide Show is used to display a series of images, either a new image is
displayed after a certain amount of time or after a certain signal is given (
manual mode).
The Drive listbox changes the current drive.
Quick Dir is explained elsewhere.
Directory is a listbox of the current directory. Selecting an item in this
listbox will cause a change to that directory.
Note: Selecting the current directory will deselect all the files highlighted
in the Files listbox.
The basic idea is to select a file that you want included in the display. You
can select a specific file by clicking on it in the File list box. You may
select multiple files at one time. A file is selected when it is highlighted.
Note: If you double click on a file, it is immediately selected into the
Selected Files listbox.
If you have mistakenly highlighted a file, clicking on it again will de-
highlight it. In addition to going after individual files in the Files
listbox, you may use any or all of the four buttons located above it. *.gif
will highlight all files that have the .gif extension. Similar for *.jpg while
*.* selects everything. The Mask-> button will take whatever you have entered
in the listbox to its right and use it for finding files. You DO NOT use wild
card symbols here (*, ?).
Example: Using .gif as the mask would highlight all files
that have .gif in them. This would include
JoeView.gif
myfile.old.gif
1.gif.jpg
Using t as the mask would select any file with a t in it.
Once you have highlighted a file, hitting the Add-> button will select it into the Selected Files listbox. The files listed there are the ones that will be used in the actual slide show.
If you have decided that you don't want to include a file that is listed in the Selected Files listbox, highlight it and use the <-Remove button to eliminate it.
Note: You can select multiple copies of the same file into the Selected Files listbox.
The Start button will begin the slide show.
There are two additional buttons, Save and Load. These are for storing and retrieving a SlideShow file
selection. All that is saved is the file name, no other options are stored. The default extension for the file
created is ".sls" but any file name can be used. When loading a file, all entries are placed into the selected
listbox, including any that are already there. You can also start a Slide Show by selecting a Slide Show file
from the File Open Dialog or by dragging and dropping such a file onto the JoeView icon.
There are three options that can be selected without using the Options button. They are: Timed vs Manual, and Loop. All three can be modified from the dialog brought up by using the Options button. The Options button brings up a more complete set
of options than those displayed here. See SlideShow Options.
Be aware that you can modify your selected options even when SlideShow is running by selecting Options off the Main Menu.
Once SlideShow begins, two additional options will appear on the Main Menu that exist only when you
are running SlideShow. One is Pause SlideShow and the other is Stop SlideShow. Pause will temporarily halt the slide show, thus freeing the CPU for other things. Once selected, this command will
change to Restart SlideShow.
Note: When JoeView is minimized the SlideShow will pause after the next image has been read in.
Stop SlideShow will stop the slide show. The slide show will not stop in the middle of reading a file, so if a file is currently being loaded, JoeView will complete the load before ending the slide show.
Manual Mode: The next image is displayed when you double click with the right mouse button on the current image or hit the N key.
Note: You can skip ahead to the next image in Timed mode by double clicking with the right mouse button or hitting the N key.
ΓòÉΓòÉΓòÉ 2.2.3.1. SlideShow Options ΓòÉΓòÉΓòÉ
You can specify the time interval between images being displayed. This field
is ignored if you select manual mode. The actual time interval is calculated
from the time the most recent image is displayed until the next image will
start to be read. Because of time it take to read an image, the actual
interval between image displays may be quite different than that requested.
There are four different ways of having the image displayed. The first two are
grouped with the ability to force them not to change their window size. The
fixed window size option does not affect the other two options. Both Keep True
Aspect Ratio and Aspect Ratio can Distort will resize up to the size of the
screen with each new file load unless Fixed Window Size is specified. Keep True
Aspect Ratio will always display the image in its correct height vs width
ratio. If Fixed Window Size is selected, the image may be padded with black
space on the sides or top and bottom as needed. Aspect Ratio can Distort will
resize the window to the correct size if Fixed Window Size if NOT selected.
Any subsequent resizes of the current image will force the image to fit inside
the window. If Fixed Window Size is selected, the image will always fit
exactly into the window.
The alternative two display options are size limited. Auto Resize with
Constant Width will always keep the image at the current width of the window,
small images will expand appropriately while large ones will shrink. The upper
left corner of the window is considered fixed, while the base is allowed to
float. In this way the window will resize (as far down as the bottom of the
screen) to keep the Aspect Ratio correct. If the correct aspect ratio cannot be
achieved because the image would be too large, the image width will be padded.
Auto Resize with Constant Height is similar except the height of the window
will not change. Again, the upper left corner is considered fixed and will not
be moved by JoeView. The window will expand to the far right side of the
screen if needed.
The Loop option will cause the slide show to begin over again once all the
images have been cycled through.
Randomize files will cause the slide show images to appear in a random order,
otherwise they appear in the order listed in the Selected Files listbox shown
in the SlideShow dialog.
Note: The file list is randomized but no effort is made to make sure all files
are shown when the list is gone through, nor is the same file prevented from
being shown multiple times. The only guarantee is that the correct number of
files will be shown during each cycle. (cycle = 1 if Loop is not selected).
You can also specify whether you want the Slide Show to run at low priority.
This way your other applications will not be as affected during a file read.
Any of these options can be changed while the SlideShow is running. Use the
Options command on the Main Menu once the slide show is started.
ΓòÉΓòÉΓòÉ 2.2.4. Printing ΓòÉΓòÉΓòÉ
So far printing has shown to be a hit and miss operation. Some images come out
OK, while others distort the colors. You may find that images will printout
better if you map the colors into the system colors first. On black and white
printers doing a black and white dither may yield better results and similarly,
you may want to convert your image to grayscale before printing.
Printing is not multi-threaded (so I'm lazy) so give it some time to complete.
The hard part about printing it to do so without distorting your image
inadvertently. This is where the Fixed radio buttons come in. Basically, you
choose what part of the picture will remain constant. Usually you will want to
make the image size constant, but thats up to you.
The Distortion of apect ratio tells you how much your image is being squished
because of the margins you have called for. Basically, 0 means that your image
will print true, while positive values indicate the sides are squished in,
while a negative value means the top is squished down.
You select a printer by clicking on the appropriate printer name show in the
Printers listbox. Double clicking on the printer will allow you to edit its
defaults. In addition, you can check the EPS (Encapsulated Postscript)
checkbox. This will modify the Printing dialog box, allowing you to enter a
filename and also choose whether to use RLE encoding (compress) on the file and
or a preview section for the file created. The code to create an EPS file is
based on work by John Bradley of The University of Pennsylvania.
ΓòÉΓòÉΓòÉ 2.3. Edit ΓòÉΓòÉΓòÉ
The commands listed under this heading will typically permanently change your
image, with the exception of Copying to the Clipboard (Copy...).
ΓòÉΓòÉΓòÉ 2.3.1. Copy and Paste ΓòÉΓòÉΓòÉ
The pathway to the copy and paste command.
ΓòÉΓòÉΓòÉ 2.3.1.1. Copy... ΓòÉΓòÉΓòÉ
Copy to the clipboard. The image will be copied to the system's clipboard. It
appears that when an image is copied to the clipboard, the system will convert
the colors into the "system" color palette which you can pretty much guarantee
will not match the colors of your image. If you want the copied image to be
really good, convert it to the system's palette first by using FS Dither
first. JoeView will automatically convert the image using the Distance Method.
ΓòÉΓòÉΓòÉ 2.3.1.2. Paste ΓòÉΓòÉΓòÉ
Paste from the clipboard. Whatever image JoeView is currently displaying will
be lost.
ΓòÉΓòÉΓòÉ 2.3.1.3. Paste Into From Clipboard (or File) ΓòÉΓòÉΓòÉ
This feature allows you to paste whatever is currently in clipboard into
whatever image currently is being displayed by JoeView. A locating rectangle
is used to allow you to position the clipboard image to the spot that you want
it. The clipboard image must be smaller dimensionally than the image currently
being viewed in JoeView. You can resize the clipboard image to be whatever
size you want, but you cannot change the aspect ratio.
The alternate form of this command is to paste directly from another file.
This has the advantage of not being limited by the clipboard's color palette.
Both of these command operate the same, with the exception that Pasting from a
file first requires you to specify a file.
ΓòÉΓòÉΓòÉ 2.3.2. Colors ΓòÉΓòÉΓòÉ
Color crunching stuff.
ΓòÉΓòÉΓòÉ 2.3.2.1. Control Center ΓòÉΓòÉΓòÉ
This is where the action takes place for color manipulations. Many of the
manipulations that can be executed here can also be launched from the menu
system or via hot-keys, but everything accessed via this dialog can be undone.
Basically you have two ways of manipulating the image's colors in the broadest
sense, by changing the Red Green and Blue (RGB) components of the image's
colors and by changing the Hue Saturation and Value (intensity) or HSV of the
image. The method of manipulation is chosen by the radio button HSV or RGB.
The values of RGB and HSV are stored separately so the values in one set of
spin buttons will not correspond to the other set.
The Dynamic check box will cause the changes you are making to the various
sliders to be applied as you make the changes. If you do not have the dynamic
box checked, you will need to hit the Test button to see the effects of your
changes.
The Forget It is equivalent to cancel and will restore the image to its
original state before closing the dialog. Make it So applies the changes
permanently to the image.
Other manipulations can be run from here by selecting the appropriate button.
They are
o Grayscale
o Reduce Colors
o BW Dither
o FS Dither
o Distance Method
ΓòÉΓòÉΓòÉ 2.3.2.2. Brighten ΓòÉΓòÉΓòÉ
Colors are all shifted up to brighter colors. Will eventually turn entire
image white. If you shift colors repeatedly (all white in the extreme) you
will not be able to undo using the Darken feature. This is accessed via the
hot-key "B".
ΓòÉΓòÉΓòÉ 2.3.2.3. Darken ΓòÉΓòÉΓòÉ
Colors are all shifted down to darker colors. Will eventually turn entire
image black. Can be undone with Brighten if not taken too far. This is
accessed via the hot-key "D".
ΓòÉΓòÉΓòÉ 2.3.2.4. BW Dither ΓòÉΓòÉΓòÉ
Turns current image into a black and white image.
ΓòÉΓòÉΓòÉ 2.3.2.5. Reduce Colors ΓòÉΓòÉΓòÉ
You specify the number of colors you want the image to have. Numbers greater
than the current number of colors the image uses will do nothing and values
less than 2 are not allowed. This function is usually fast but can be a little
time consuming with large pictures.
ΓòÉΓòÉΓòÉ 2.3.2.6. Go Grayhound ΓòÉΓòÉΓòÉ
Converts the colors used in the image to grayscale.
ΓòÉΓòÉΓòÉ 2.3.2.7. System Colors ΓòÉΓòÉΓòÉ
There are two different ways of converting from the image's current color
scheme to that used by your OS2 system. They are Floyd Steinberg Dithering (
FS Dither ) and and the Distance Method.
ΓòÉΓòÉΓòÉ 2.3.2.7.1. FS Dither ΓòÉΓòÉΓòÉ
Floyd Steinberg Dithering of your image into the system's palette. The
dithering method is based on ppmquant.c by Jef Poskanzer. This produces
incredible results, sometimes it is hard to distinguish your original image
from the dithered. Of course the penalty is that it is EXTREMELY CPU
intensive. A VGA size image takes several minutes on my 33Mhz 486, your
mileage may vary. The results are much better than using the Distance Method.
This option is useful when copying to the clipboard or creating wallpaper or
lockup screen images.
ΓòÉΓòÉΓòÉ 2.3.2.7.2. Distance Method ΓòÉΓòÉΓòÉ
Converts your image's palette into the system's default palette. Much faster
than FS Dither but noticeably lower quality.
This option is useful when copying to the clipboard or creating wallpaper or
lockup screen images.
ΓòÉΓòÉΓòÉ 2.3.3. Resize ΓòÉΓòÉΓòÉ
Resizing changes the resolution of the image. This will effect that actual
image, not just the displayed image. See Viewing Strategies for more
information. Remember that how you have specified that the image be displayed
may make it appear that this operation has done nothing when it actually has.
For example, you may have the window size fixed.
You can do +-10% increments or size the image to fit a particular screen size,
such as 640 x 480, 800 x 600, and 1024 x 768 or the resolution that the image
is currently being displayed at. In addition to can specify the actual
dimensions to use by using the custom command.
ΓòÉΓòÉΓòÉ 2.3.4. Cropping ΓòÉΓòÉΓòÉ
Using the right mouse button, select an area of the image which you wish to
retain. Using crop will eliminate all area's outside the indicated rectangle.
The change affects the image, unlike Zoom.
You must be aware that the image may be being displayed with padded sides.
The padded sides exist for display only and so cannot be cropped away. This
could happen if you manually resized the window after JoeView originally
displayed it.
ΓòÉΓòÉΓòÉ 2.3.5. Auto Cropping ΓòÉΓòÉΓòÉ
Auto cropping attempts to use a little bit of color comparisons to estimate
which parts of the picture need to be croppped.
Regular: This method looks at the color of the pixel in the lower left corner
of the image. It then compares all other colors on each side of the image to
this color. If one side's color all match this "magic" color, that side is
deleted. This method progresses until a new color is encountered.
Strict, Average, Loose, and Custom: All of these methods work on the same
underlying principle. A group of colors are identified and used to compare a
side of the image to. The group of "magic" colors will be taken from the lower
left side of the image unless a cropping rectangle has been selected, in which
case the " magic" colors are taken from there. A maximum of 10 colors will be
determined, only one will be used if a solid color area is input. A percentage
hit test is used to determine if a side of the image should be deleted. For
instance, if you have 3 "magic" colors and if half the pixels of the side being
examined have these colors a hit of 50% would be recorded. This hit percentage
is compared to the allowed value to determine whether or not to delete the
side. The Strict, Average, and Loose options correlate to a 95%, 85%, and 75%
hit rates. You can enter your own percentage using the custom command.
Note: If nothing seems to be happening, you might be using too tight a
percentage, but you also might be too loose. If the percentage is way too
loose too much of the picture gets cropped and JoeView assumes that this isn't
what is desired and so does no cropping.
ΓòÉΓòÉΓòÉ 2.4. Manipulations ΓòÉΓòÉΓòÉ
This menu command does nothing but bring down another pull down menu. The
commands on that menu are used for changing or manipulating the current image.
Many have keyboard equivalents. All these commands can be undone by using
another command or the same command twice, i.e. using mirror twice.
ΓòÉΓòÉΓòÉ 2.4.1. Flip ΓòÉΓòÉΓòÉ
Depending on the option selected, the current image is flipped (mirrored)
either vertically or horizontally.
ΓòÉΓòÉΓòÉ 2.4.2. Rotate ΓòÉΓòÉΓòÉ
Rotation is either clockwise or counterclockwise. Rotation takes place in 90
degree increments.
ΓòÉΓòÉΓòÉ 2.4.3. Invert Colors ΓòÉΓòÉΓòÉ
The current image colors are inverted. For example, black becomes white, etc.
ΓòÉΓòÉΓòÉ 2.4.4. Zooming ΓòÉΓòÉΓòÉ
Zooming allows the user to zoom in on a particular area of the image. That
area if first selected by using the right mouse button. After a zoom has been
performed, the menu option will change to Zoom Out. The original image is
unaffected by zooming, as opposed to Cropping .
ΓòÉΓòÉΓòÉ 2.5. Options ΓòÉΓòÉΓòÉ
This will bring up one of two possible menus depending on whether or not you
are currently running SlideShow The slideshow options can be looked at in the
Slide Show Options section. The more regular options are
o General
- Show Load Progress
- Overide System Colors
- Aggresive on palette
- Show Image Info
o Image Windowing Options
- Scale, keep aspect ratio true
- Scale, aspect ratio can change
- Fixed Window Size
o JPEG Stuff
o Custom Cropping Value
o Startup Drive and Directory
o Saves
- Full Color
- Grayscale
- BW Dithered
- Save at displayed size
o Confirm on delete
o Browse Mode
o Low Priority Read
o Sort by date
o Sort by name
o Command Buttons
- Apply (Options become active, but are not saved)
- Save (Options saved but not applied)
- Cancel (duh!)
- Help
ΓòÉΓòÉΓòÉ 2.5.1. Load Progress ΓòÉΓòÉΓòÉ
Shows the current status of file loading, basically a percentage of image
loaded. Shown in the window title bar. Some File formats may not show this.
ΓòÉΓòÉΓòÉ 2.5.2. Overide System Colors ΓòÉΓòÉΓòÉ
Allows application to cream the system colors. These are the colors used for
dialogs, menu text, etc. There are not that many of them, you can figure out
how many unique ones you have by looking at the Image Information Dialog
colors field. You will often see "got 245 out of 256". Subtract the first
number from 256 to get the number of system colors.
The colors that the application can't place are mapped into the closest ones
the system will display. Usually the increase in image quality is
insignificant, but you might use this option if you are not gonna look at other
applications while JoeView is running.
ΓòÉΓòÉΓòÉ 2.5.3. Aggresive on Palette ΓòÉΓòÉΓòÉ
The application will fight for colors it is using. If another application
starts changing the palette this option will cause JoeView to try and change
the colors back every now and then. If you are working with another
applications it can get annoying having the colors flash and the system will
slow down somewhat.
You can use a hot key (Alt A) to cycle this on or off.
Even while Aggresive on Palette is off whenever you make JoeView the active
application the palette will become reset to the correct colors.
ΓòÉΓòÉΓòÉ 2.5.4. Quick but eh ΓòÉΓòÉΓòÉ
The fastest reading of a JPEG file, colors may be off.
ΓòÉΓòÉΓòÉ 2.5.5. Not bad ΓòÉΓòÉΓòÉ
This tries to implement Heckbert's Median Cut algorithm. The code is hacked
from XV by John Bradley of The University of Pennsylvania which is in turn
based/hacked on code by Jef Poskanzer (ppmquant.c - quantize colors).
It gets the job done, but sometimes not as fast as Best option. Quality in
line with Best. I am not sure, but I get the feeling that when viewing true
24 bit images (meaning way over 256 colors), this will give you the best
conversion down to 8 bit.
ΓòÉΓòÉΓòÉ 2.5.6. Best ΓòÉΓòÉΓòÉ
Best image display. Floyd-Steinberg dithering is used.
ΓòÉΓòÉΓòÉ 2.5.7. Startup directory ΓòÉΓòÉΓòÉ
Where would you like to start looking for images? Leave blank to start in
current directory.
ΓòÉΓòÉΓòÉ 2.5.8. Full Color ΓòÉΓòÉΓòÉ
Save file using all the colors it currently has.
ΓòÉΓòÉΓòÉ 2.5.9. Grayscale ΓòÉΓòÉΓòÉ
Save image but first convert to grayscale colors.
ΓòÉΓòÉΓòÉ 2.5.10. BW Dithered ΓòÉΓòÉΓòÉ
Save image but convert to Black and White first.
ΓòÉΓòÉΓòÉ 2.5.11. Save at Displayed Size ΓòÉΓòÉΓòÉ
Remember that the size of the displayed image may not be the size of the actual
image. Select this if you want the image to be stored at the same dimensions
it is being displayed at. See Viewing Strategies for more info.
ΓòÉΓòÉΓòÉ 2.5.12. Sort by Date ΓòÉΓòÉΓòÉ
Files are listed in chonological order.
ΓòÉΓòÉΓòÉ 2.5.13. Sort by Name ΓòÉΓòÉΓòÉ
Files are listed in alphabetical order.
ΓòÉΓòÉΓòÉ 2.6. Image Information ΓòÉΓòÉΓòÉ
This command brings up a window that shows information about the currently
displayed image. The information consists of:
o The Filename
o Format of the image file and filesize
o Resolution of the image in memory
o Resolution of the image as display
o Distortion and scale of the image (Dist. and Scale)
o Color information
o An unseen line that occasionally will show warning messages
o A history list box of manipulations that have been performed on the current
image.
The Information Box will remain around as long as JoeView is alive or until the
Hide button is pressed.
The information categories are pretty self explanatory, but for clarity
Resolution refers to the resolution of the image as it is currently stored in
memory, while Display Res. is the resolution that the image is currently being
displayed at.
The Dist. and Scale category may not be obvious. The distortion is the ratio
of the aspect ratio of the image as it is displayed divided by the aspect ratio
of the image in memory. Take that number and subtract one from it if it is
greater than one or if it is less than one invert it and make it negative and
then add one. We will call the aspect ratio the width of the image divided by
its height. So a distortion of 0 means the image is not being distorted, a
positive value means your are crushing the top down and a negative value means
you are squishing the sides in.
Scale is the scale factor of memory versus display. 2 means the display image
is twice as large as the memory image. When you are distorting the image, the
largest scale (width or height) is displayed.
ΓòÉΓòÉΓòÉ 3. Some Hints ΓòÉΓòÉΓòÉ
No the hints aren't here, go in one more level.
ΓòÉΓòÉΓòÉ 3.1. Viewing Strategies ΓòÉΓòÉΓòÉ
Images are displayed in several ways. Two ways that are always available are 1)
just a simple, correctly scaled image and 2) an image that starts out scaled,
but if you resize the window the aspect ratio will change so that the picture
always fills up the window. These two types of display can be modified
somewhat by selecting the fixed window size attribute. This option will force
JoeView to not resize the viewing window each time a new file is loaded
(whether by SlideShow or by File -> Open). The user can resize the window at
any time.
The SlideShow offers two addition ways of displaying images. See SlideShow for
more information. In no case however, are sliders ever used.
The most important thing to remember when using JoeView is that the actual
resolution of the image (the width x height) is not always the same as that
which it is displayed with. For example, let's say you are working on a system
that is limited to a display of 640 by 480 and you try and load an image that
is 2000 by 2000. JoeView will resize the image to fit the screen when it
displays the image to you, but the data representing the image will stay at
2000 by 2000. Any operations (manipulations) that you perform on the image
will by done on the original image, the 2000 by 2000 one. Now, let's say you
use the ReSize command to reduce the image to 640 by 480. From as far as you
can tell, nothing will have changed. This is because the image size is still
as big as the display can handle. In reality you have changed the image size
and if you save the image it will be different than the one you originally
loaded. The Image Information option on the main menu will keep you apprised
of the actual vs displayed resolution of the current image. When you save a
file there is the option to save at the currently displayed size, the above
discussion is why that option exists.
ΓòÉΓòÉΓòÉ 3.2. Quick Dir ΓòÉΓòÉΓòÉ
An especially useful feature, the Quick Dir listbox is present in several
different dialogs:
o File Open
o Slide Show
o File Save
o Options It is only in the Options dialog the Quick Dir listbox can be
modified. Aside from modifying the Quick Dir listbox, the Options dialog is
not affected by it. The format for an entry is to have a drive letter and
full path
For Example c:\images\gif there should not be any trailing slashes. There
is a limit of 10 entries that will be remembered. Others will be ignored.
Unused entries should consist of blanks.
The basic use of the Quick Dir is to allow the user to quickly access
frequently used directories. The actual use of the Quick Dir listbox varies
somewhat depending on the dialog. In the File Open and Slide Show dialogs Quick
Dir is accessed by using the pull down on the listbox. Doing so will cause the
current directory and drive to change to that selected in Quick Dir. With the
File Save dialog, invoking Quick Dir is the same, but instead of actually
changing the drive and directory, just the entry in the name of the file to be
saved will be updated. If you want to change directories in the File Save
dialog you will have to use the drive and directory listboxes.
ΓòÉΓòÉΓòÉ 4. File Formats ΓòÉΓòÉΓòÉ
A variety of file formats are supported. See each individual one for more
info.
You should be aware of some limitations when doing conversions between
different file formats or if you are constantly rewriting reading and saving
the same image over and over again (See JPEG). When JoeView reads a file, no
matter what the original format, it is stored as an 8 bit image (256 colors
max). This means that if you read in a JPEG, TARGA, Sun Raster, or PPM image
there exists the possibility that the original file is made up of more than 256
colors and so JoeView will reduce the colors down to 256. So, if your goal is
to convert a 24 bit image stored in TARGA format to PPM there is a very good
chance that your image will suffer a loss in quality. There are utilities
available to do true 24 bit conversions, if you are really concerned. Most
likely the losses will be quite small.
Eight bit formats will not suffer any degradation.
ΓòÉΓòÉΓòÉ 4.1. JPEG ΓòÉΓòÉΓòÉ
The JPEG reading and writing code is based on the following people's work:
The Independent JPEG Group's JPEG software
==========================================
This software is the work of Tom Lane, Philip Gladstone, Luis Ortiz,
Lee Crocker, Ge' Weijers, and other members of the Independent JPEG Group.
LEGAL ISSUES
============
The authors make NO WARRANTY or representation, either express or implied,
with respect to this software, its quality, accuracy, merchantability, or
fitness for a particular purpose. This software is provided "AS IS", and you,
its user, assume the entire risk as to its quality and accuracy.
This software is copyright (C) 1991, 1992, Thomas G. Lane.
All Rights Reserved except as specified below.
Permission is hereby granted to use, copy, modify, and distribute this
software (or portions thereof) for any purpose, without fee, subject to these
conditions:
(1) If any part of the source code for this software is distributed, then this
README file must be included, with this copyright and no-warranty notice
unaltered; and any additions, deletions, or changes to the original files
must be clearly indicated in accompanying documentation.
(2) If only executable code is distributed, then the accompanying
documentation must state that "this software is based in part on the work of
the Independent JPEG Group".
(3) Permission for use of this software is granted only if the user accepts
full responsibility for any undesirable consequences; the authors accept
NO LIABILITY for damages of any kind.
Permission is NOT granted for the use of any IJG author's name or company name
in advertising or publicity relating to this software or products derived from
it. This software may be referred to only as "the Independent JPEG Group's
software".
We specifically permit and encourage the use of this software as the basis of
commercial products, provided that all warranty or liability claims are
assumed by the product vendor.
==================
The following is pretty much stolen verbatim for the JPEG information that is
supplied with the JPEG libraries.
The Quality spin button lets you trade off compressed file size against the
quality of the saved image: the higher the quality setting, the larger the JPEG
file, and the closer the output image will be to the original input. Normally
you want to use the lowest quality setting (smallest file) that decompresses
into something visually indistinguishable from the original image. For this
purpose the quality setting should be between 50 and 95; the default of 75 is
often about right. If you see defects at -quality 75, then go up 5 or 10
counts at a time until you are happy with the output image. (The optimal
setting will vary from one image to another.) Quality 100 will generate a
quantization table of all 1's, eliminating loss in the quantization step (but
there is still information loss in subsampling, as well as roundoff error).
This setting is mainly of interest for experimental purposes. Quality values
above about 95 are NOT recommended for normal use; the compressed file size
goes up dramatically for hardly any gain in output image quality. In the other
direction, quality values below 50 will produce very small files of low image
quality. Settings around 5 to 10 might be useful in preparing an index of a
large image library, for example. Try -quality 2 (or so) for some amusing
Cubist effects. (Note: quality values below about 25 generate 2-byte
quantization tables, which are considered optional in the JPEG standard.
Note: some commercial JPEG programs may be unable to decode the resulting
file.
Smooth Factor: Smooth the input image to eliminate dithering noise. The value
selected, ranging from 1 to 100, indicates the strength of smoothing. 0 will
mean to not use smoothing and can be used instead of the check button. The
Smooth option filters the currently displayed image to eliminate fine-scale
noise. This is often useful when saving files as JPEG: a moderate smoothing
factor of 10 to 50 gets rid of dithering patterns in the input file, resulting
in a smaller JPEG file and a better-looking image. Too large a smoothing
factor will visibly blur the image, however.
Optimization of entropy encoding parameters. Without this, default encoding
parameters are used. Optimize usually makes the JPEG file a little smaller, but
JoeView runs somewhat slower and needs much more memory. Image quality and
speed of decompression are unaffected by optimize. It's also a win when you are
using low quality settings to make very small JPEG files; the percentage
improvement is often a lot more than it is on larger files
When reading a JPEG, there are three mutually exclusive option that deals with
quantization of the colors (converting from a 24 to 8 bit image). Your options
are:
o Quickest but eh. The one pass color quantization. The fastest of the three
, but probably will result in a noticeably inferior image. Good for a quick
look.
o Not Bad. This tries to implement Heckbert's Median Cut algorithm. The code
is hacked from XV by John Bradley of The University of Pennsylvania which is
in turn based/hacked on code by Jef Poskanzer (ppmquant.c - quantize colors).
It gets the job done, but sometimes not as fast as Best. Quality in line
with Best. I am not sure, but I get the feeling that when viewing true 24
bit images, this will give you the best conversion down to 8 bit. This should
be a step below the best method in terms of quality but faster. Make your
own judgment. It is not part of the regular JPEG libraries.
o Best. Floyd-Steinberg dithering is used.
ΓòÉΓòÉΓòÉ 4.2. Bitmaps ΓòÉΓòÉΓòÉ
The two important types of bitmaps supported are Windows and OS2 style bitmaps.
JoeView should read any of these type of bitmaps (RLE and non-RLE) with the
following caveats:
o Black and White images that are stored by using modified Huffman encoding can
not be read.
o With certain small bitmaps that are used as icons, you currently get an
unrecognized file type error.
o OS2 allows the use of halftones and such. JoeView does not read these but I
have never even seen one.
Saving bitmaps, on the other hand, is limited to non-RLE style. Basically the
bitmaps will take up more space than RLE style.
ΓòÉΓòÉΓòÉ 4.3. GIF ΓòÉΓòÉΓòÉ
Does em'.
The code for reading and writing GIFs is based on code from XV, see the PBM
section for the appropriate copyright notice. The code XV has for reading GIFs
is based on gif2ras.c, Copyright (C) 1988, 1989 by Patrick J. Naughton,
naughton@sind.sun.com. The code XV has writing GIFs is based on flgife.c and
flgifc.c from the FBM Library, by Michael Maudlin.
JoeView will read both GIF87a and GIF89a formats but will write only GIF87a
format.
"The Graphics Interchange Format(c) is the Copyright property of
CompuServe Incorporated. GIF(sm) is a Service Mark property of
CompuServe Incorporated."
ΓòÉΓòÉΓòÉ 4.4. TARGA ΓòÉΓòÉΓòÉ
The code to read Targa images is based on tgatoppm.c by Jef Poskanzer. This is
the copyright stuff from that file.
/* tgatoppm.c - read a TrueVision Targa file and write a portable pixmap
**
** Partially based on tga2rast, version 1.0, by Ian MacPhedran.
**
** Copyright (C) 1989 by Jef Poskanzer.
**
** Permission to use, copy, modify, and distribute this software and its
** documentation for any purpose and without fee is hereby granted, provided
** that the above copyright notice appear in all copies and that both that
** copyright notice and this permission notice appear in supporting
** documentation. This software is provided "as is" without express or
** implied warranty.
JoeView does both RLE and non-RLE style files.
ΓòÉΓòÉΓòÉ 4.5. PBM ΓòÉΓòÉΓòÉ
The code for reading and writing PBM files is based on code from XV, the
following is copyright information from XV.
* Copyright 1989, 1990, 1991, 1992 by John Bradley and
* The University of Pennsylvania
*
* Permission to use, copy, and distribute for non-commercial purposes,
* is hereby granted without fee, providing that the above copyright
* notice appear in all copies and that both the copyright notice and this
* permission notice appear in supporting documentation.
*
* The software may be modified for your own purposes, but modified versions
* may not be distributed.
*
* This software is provided "as is" without any expressed or implied warranty.
*
* The author may be contacted via:
* US Mail: John Bradley
* GRASP Lab, Room 301C
* 3401 Walnut St.
* Philadelphia, PA 19104
*
* Phone: (215) 898-8813
* EMail: bradley@cis.upenn.edu
*
JoeView uses the term PBM loosely, there are really three (or six) different
types of formats here. They are:
PGM - portable graymap file format
The portable graymap format is a lowest common denominator grayscale file
format. The definition is as follows:
- A "magic number" for identifying the file type. A pgm file's magic
number is the two characters "P2".
- Whitespace (blanks, TABs, CRs, LFs).
- A width, formatted as ASCII characters in decimal.
- Whitespace.
- A height, again in ASCII decimal.
- Whitespace.
- The maximum gray value, again in ASCII decimal.
- Whitespace.
- Width * height gray values, each in ASCII decimal, between 0 and the
specified maximum value, separated by whitespace, starting at the top-
left corner of the graymap, proceding in normal English reading order.
A value of 0 means black, and the maximum value means white.
- Characters from a "#" to the next end-of-line are ignored (comments).
- No line should be longer than 70 characters.
Here is an example of a small graymap in this format: