Image Analysis ToolKit
by Winson Chung. Revision2: May, 2004
Updated: February 26, 2005
Welcome to Image Analysis Toolkit! (IAT), a general purpose image toolkit for those who are looking work with images on both general and
possibly experimental levels.
What this program is: Simply put, IAT is a framework for which users can add and remove pieces of the 'toolkit' to best suite their
imaging needs. It is up to the user to determine the plugins and operations that best suites their type of work.
Technically, IAT is completely written in core Java2, and was written to be a general test-bed for future forays
into digital imaging. Currently, it supports all Java standard image formats, which includes the loading of [jpg, gif, png, bmp]s, and the
writing of [jpg, png, bmp]s (more file filters will be implemented shortly). This program is centered around a set of dynamic plugins, that
can be written and used with extreme ease. Documentation on plugin development is included with the program.
What this program is NOT: This program is not intended to be a general purpose image editor (although that can be implemented), I am aware that there are numerous
programs that are much better suited for this type of work, such as GIMP, Paint Shop Pro, and Photoshop. I am also aware that JAI allows for a much
richer set of operations over the standard Graphics2D, but as it stands, JAI is not core Java, and asking people to download another 5 megabytes
just to use my program is preposterous. This program can be used by anyone, and plugins can be written by anyone with the least bit of
experience in Java graphics programming (or not!). Final note: I have tested this on WindowsPCs currently, so feel free to email me if
there are complications in getting this to run on your system.
Some features of IAT:
- Written in standard Java - highly portable.
- Designed with modularity in mind - plugins are easy to use and write, and system is extensible.
- Personalized Options - numerous options to streamline your imaging work.
- Multi-threaded - operations are done more efficiently.
Default Keyboard Shortcuts:
- A - Shift Virtual Desktop Left
- D - Shift Virtual Desktop Right
- W - Shift Virtual Desktop Up
- S - Shift Virtual Desktop Down
- H - Emulate Scroll Up (for users [like me!] without scrolly mouses)
- J - Emulate Scroll Down
- U - Emulate Scroll Click
- M - Maximize current Frame
- N - Minimize current Frame
- B - Boss Key (Minimize application)
- F1 - Show Help (this readme!)
- C - Cascade all Frames
- T - Tile all Frames
- Ctrl-A - Select whole Image
- Ctrl-W - Close current Frame
- Ctrl-S - Save current Frame
- Ctrl-O - Open new Image
- Ctrl-Z - Undo last operation
- Ctrl-Y - Redo last operation
- [ - Zoom into image
- ] - Zoom out of image
- \ - Reset zoom factor for image & image size.
- Delete - Deletes the current selection from the image
How to use this program: This program is very simple works very similar to other imaging programs. First, to open a file, goto the
File
menu, and select open. Note that files with large dimensions (ie. 4000x4000) may take a moment to load. Once the image
has been loaded, you are free to use any of the operations in the menu (or toolbar). Image
operations are those that directly change the
image. Info
operations are those that perform analysis on the specified images, and Misc
operations are free form operations.
Note that operations can only work on images when Image Frames are selected.
How to program for IAT: Please read the file 'iat_plugin_programming.html' that accompanies this release.
Tips for using IAT:
- How many ways are there to load images? - IAT supports a number of different loading processes, the most simple of which is through the file
chooser (found in the File Menu). You can also load images through Drag and Drop (Windows/OSX currently) from the native OS. You can also load images from
the web through the File Menu, or by dragging images (if your browser supports it. Finally, you can paste images from the clipboard to start a new Image Frame
to work on.
- Choosing colors? - IAT has a color buffer that allows users with mouse wheels to scroll through the current selection of colors. Simply move the mouse
over the color selection button on the toolbar and scroll the wheel to select the color in the buffer. To select a color from the image, simply move the mouse
over the color you wish to be selected, then press the wheel button (middle button). Users using wheel-less mice can also select a color on an image by
right clicking. (Change in perferences) To choose a color from the color-chooser, simply click on the color button. To flip the current color with the next
color, simply click the little circle on the top right of the color button.
- Out of Memory? - This error is thrown when the system runs out of memory for operations and such. If you are working with extremely large
files, you will get much better performance if you use operations that are sub-divisible. Also, try minimizing the program every once in a while,
becuse it is programmed to call the Java Garbage Collector when the user isn't looking (thx to Felix for the tip!).
- Image out of range? - Sometimes, you may maximize an Image Frame, forcing it to resize out of the bounds of the virtual desktop. If this
happens, you can simply Tile or Cascade the frames back into view.
- Multitasking? - IAT supports loading multiple files at once, so don't hesitate when selecting many files in the open dialog. However, since
most operations are quite cpu intensive, operations are limited to one at a time.
- Saving Frames - All Frames in IAT can be saved, although some have different saving properties. An Image Frame will always prompt the user for a
location to save the image to. For an Info Frame, if it is not self-sustained (determined by Info Op), then it will prompt the user to save the image (if there is one)
from the analysis, as well as any text (into html file) that accompanies the analysis. Lastly, if the Info Frame is self-sustained, or a Misc Frame is currently
selected, IAT will prompt the user to save a snapshot of the current frame.
- What's with the different undo schemes? - You may be surprised to see that there are two different undo schemes for IAT (or not), the reason behind
this is that IAT uses two (of many) possible undo schemes to allow users the best possibilites. Generally, the program will use the default buffered
undo scheme in which images are saved in back buffers and can be directly recalled. This allows for the quickest possible undo, but since images are stored
in memory, large images may take up lots of memory (depending on chosen number of buffer slots) thus leading to OutOfMemory errors. The alternative is to use
file-swapping to handle the image undo/redo process. Although this allows for an infinite number of undo/redo operations (depending on disk space), it is relatively
slow compared to buffered processes. Depending on the type of work you are doing, you should consider the model that suites it best. All temporary
files are automatically deleted when the program closes.
- How does copy/paste work? - IAT supports the standard methods for copying and pasting. If there is an image on the clipboard, when you paste it into
IAT, it will automatically build an ImageFrame for you. If there is text on the clipboard, IAT will build a temporary notify dialog for you to view the text.
Since Java is not built in directly to the native system, you can expect delays when copying and pasting (depending on the frame you are working with).
- What a whacky selection scheme you have! - Haha, yes, IAT selection is based on the general Rectangle selection, as well as a Polygon selection process.
This means that at any given point in the selection, there is a perfectly valid polygon to be processed. This way is actually very simple to use, feel free to check out
the video tutorials if you have trouble using it.
- How does the mouse work? - The mouse in IAT works similarly to normal Windows applications. The left mouse, when clicked, will draw out a polygon. When
dragged, the left mouse button will create a rectangle selection, the right mouse button will shift the current view of the image. The wheel mouse scroll will zoom
into and out of the current image frame.
- Slow images? - In the process of working with images in IAT, you may encounter certain images that make operations (such as zoom, scroll, etc.) appear slow.
This usually occurs with images that have an extra layer of transparency (GIFs, possibly PNGs), in which the program has to draw the extra information on each
repaint. A possible solution would be to convert the image to a RGB image (ImageOps -> Color Models) if you are not currently working with the alpha layer.
- What kind of Transparency is supported? - Current, IAT is capable of loading transparent images (you will see the generic checkered background), but is
not currently able to save transparency. This is mainly because GIF's can not be encoded at this time (without overstepping some lines). But also
due to the fact that few image-processing algorithms take transparency into account. However, expect this to be extended in later cycles of development.
- Is there anyway to preview the operations before doing them? - You can preview the operations through the Image Effects Browser under the File menu.
It applies the operations using default values, and can use the current selection (if there is a selection on the current image) as the base image.
- How come my windows are sometimes stuck, and not movable/resizable? - Due to the large desktop space available, there is a lock-in feature that can
"freeze" a frame on the desktop (which still allows selection and operations, but no moving or resizing of the frame). This is done when the maximize button is clicked
while the image is already maximized. You will see the middle button (between the minimize, and close) change from a single square to two squares. To unlock, just
click on the button (or double click on the title bar). When maximizing a shrunken frame, the button behaves as normal.
Final Notes: The user runs this program at their own discretion, there are no implied warranties that accompany this program.
IAT is for for non-commercial, educational use only!