Negative Light User's Guide


File and Directory Operations. 2

Selecting an Image. 2

Viewing An Image. 3

Selecting Several Images. 3

Selecting an Entire Directory. 3

Organizing Your Images. 3

Navigation. 4

Renaming. 4

Selecting Several Files at Once. 4

Renaming Several Files at Once. 4

Moving and Copying Files. 4

Creating. 5

Deleting. 5

File Properties and User Tags. 5

Properties in the Picker. 5

The Image Properties Dialog. 6

Basic Image Operations. 6

Zooming. 6

Moving. 6

Rotating and Flipping. 7

Scaling. 7

Selecting, Cropping,  and Pasting. 7

Selecting. 7

Cropping. 8

Copying and Pasting. 8

Copy. 8

Placement. 8

Moving and Stretching. 8

Placement. 9

Pressure. 9

Transparency. 9

Blending Methods. 9

Printing. 11

Drawing, Painting, and Filling. 12

Color Selection. 12

Drawing. 12

Painting. 13

Filling. 13

Irregular Cut-outs and Overlays. 13

Warping and Straightening. 13

Brightness, Contrast, and Tint. 13

JPEG Image Properties. 13

Command Line Tools. 13


File and Directory Operations

Selecting an Image

To choose a single image, use the "Pick File.." item under the File menu. The first time you do this, neglight will create a yellow form containing columns. This is the "Image Picker." It is your primary tool for managing collection of image files.

The Picker lists your selected images, one row per file. Each column corresponds to a specific image property, such as file name and length.

Viewing An Image

To view an image, simply click on that row in the Picker. An "Image Viewer" will appear in a separate window. If you click on another row, the existing Viewer window will switch to the selected image.

The "Options..." item in the Tools menu allows you to modify this behavior. Change the value for "Reuse Existing Viewer" from True to False. Now, if you click on a row, each image will appear in its own window, allowing you to view several images simultaneously. However, you will have to explicitly close these windows to avoid cluttering your desktop.

Selecting Several Images

The "Pick File..." dialog allows you to select several images at once. Press the Control key while clicking on files to expand your selection. The Picker will get populated with all the images that you selected in a single operation.

Selecting an Entire Directory

The "Pick Directory..." dialog lets you choose an entire directory of images. Neglight will search the directory (and all sub-directories) for files with recognized suffixes. All such files will be added to the Picker list.

Organizing Your Images

The Picker has many useful features for organization your collection of images. Each row corresponds to a file, and each column corresponds to a file or image property. To change which properties are displayed, right click on the window. A context menu will pop-up, which allows you to add or remove columns. The currently displayed columns have a check in front of the menu item.

You can grow or shrink columns by "grabbing" one of the thin vertical bars that separate the Picker columns (top row, between the headings). Using the left mouse button, slide these separator bars left or right. The entire column will grow or shrink accordingly.

To swap columns, grab a column heading with the left mouse button. Move the mouse left or right to relocate the entire column. Make sure to grab the very top row, where the headings are.

Click on a column heading to sort by that column. A black arrow shows that this column has become the primary sort key. To reverse the sort, click on the same column heading twice. If you click on another column heading, the previous arrow will turn from black to gray. The gray indicates that the previous column has become the secondary sort key, which is used when the primary sort keys are equal. An even lighter gray indicates a tertiary sort key.


To view an image, click on its row in the Picker window. The image should appear in a separate Viewer window.

The Picker has a scroll bar on the left side for moving up and down quickly. The Space or Down Arrow key will move down exactly one row. The Up Arrow key will move up one row. These keys work even if the Viewer is in the foreground. You can leave the Picker in the background and still navigate with key strokes.

If you have a very large set of files loaded in the Picker, it may be difficult to find the one you are looking for. Sorting the list by name, directory, or date will probably help.


Select a file in the Picker with the mouse. Then press the "n" key to change the name of the file. A white text box will appear, allowing you to type in a new file name. Press Return to commit the change, and press Esc to cancel. The original file suffix will be preserved.

Selecting Several Files at Once

To select a contiguous group of files in the Picker, start by selecting the top file in the group with the left mouse button. Then, while pressing the Shift key, click on the bottom file in the group. You should see one row with a black background, and the rest with a green background. The black row is your "primary selection," and the rest are your "secondary selection."

If you use the Control key, you can extend a selection while skipping over the files in between. This feature is useful if there is no good way to group related files together by sorting.

Pressing an Arrow key while holding the Shift key will also extend a selection.

Press the "g" key to select a group of files that are closely spaced in time. This is useful for quickly finding all the pictures in a set. The "Options..." menu lets you choose the threshold for grouping by time, in seconds. For example, if you want to find pictures that were taken no more than 5 minutes apart, set the threshold to 300.

Renaming Several Files at Once

Select multiple files at once using the methods in the previous section. Then press the "n" key. A white text box will allow you to rename. After you hit Return, all the selected files will change names. Neglight automatically appends a numeric suffix to keep the files from having the same name.

This feature is great for giving sets of related images the same root name.

Moving and Copying Files

Select one or more files using the methods described above. Pick the "Move Files To..." item in the File menu. A dialog will allow you to choose a destination directory. If you hit the OK button, all the selected files will get moved to this directory. If there is a conflicting file with the same name in the destination directory, neglight will automatically add a numeric suffix to prevent one from overwriting the other.

Copying files from one directory to another is very similar to moving files. To do so, select the "Copy Files To.." item in the File menu.


To create a new image, select the "New Image..." item in the File menu. A dialog will appear that allows you to choose the image size and initial background color. Later, choose the "Save Image" or "Save Image As..." items in the File menu to save the image to a file.


To delete a file, first mark it for deletion by selecting the file in the Picker and pressing the Delete key. A red line will strike through the row, indicating that a deletion is pending. Mark all the files that you want to delete this way. Then select the "Purge Deleted Files" item in the File menu. This action will cause the deletion to actually occur (after a confirmation dialog).

You can remove a red line by clicking on a marked row and pressing Delete again. The file will no longer be marked for deletion.

Neglight puts deleted files into the system Recycle Bin, so you can undelete later if necessary.

File Properties and User Tags

Properties in the Picker

Neglight associates a large number of properties with each image, and nearly all of them can be displayed as columns in the Picker. The first set of properties comes from the file, such as file name, directory, file length, and last write time. The second set are image properties, such as width, height, pixel count, and pixel depth. JPEG images also have meta-data, such as artist, copyright, and camera model.

Neglight also allows you to associate "user" tags with each image. Specifically, there are 5 such tags: User 1, User 2, User 3, User 4, and User 5. The values of these tags are stored in the neglight's application state file (neglight.xml), rather than in the image file itself. The Picker allows you to view the values of these tags, and sort on them. To set a user tag, select the image in the Picker. Then press the '1', '2', '3', '4', or '5' key. A white text box will appear that allows you to type in the value. Press Return to commit the change, and press Esc to cancel.

You can set a user tag on many images at once by selecting a group. Press a numeric key to type in the tag value, which will be applied to all the images.

The Image Properties Dialog

The "Image Properties..." item in the Tools menu produces a dialog showing the JPEG meta-data for the current image. The dialog allows you to edit the meta-data, which will be saved as part of the image. These properties can be viewed with a variety of JPEG tools.

If you are creating an image, it is a good idea to fill in the Artist and Copyright fields of your creation. There is also a Description field for detailed information about the image.

Basic Image Operations


By default, neglight scales images so that they fit exactly inside the Viewer, leaving minimal unused space without clipping the image. If you resize the Viewer, the image will resize also. This form of scaling does not actually effect the image data. It is simply for viewing purposes.

The Resize menu lets you change the "zoom" factor in the Viewer. Again, these menu items do not modify the image itself. "Fit Window" is default behavior, described above. "Fit Width" sets the zoom according to the width of the Viewer window, ignoring the height. You may have unused space at the top and bottom, or the image may get clipped on the top and bottom. "Fit Height" sets the zoom according to the height of the Viewer window. The numeric choices, such as "150%", specify a fixed zoom factor. "Grow 20%" and "Shrink 20%" allow you to zoom in and out.

The Control-G and Control-S key combinations will also zoom in and out. These keys work even if the Viewer is in the foreground and the menus are hidden.


If you zoom into an image, you will be able to see only part of it, and the rest will get clipped. In this case you will probably want to move the image around so that you can see different parts. There are a few ways to accomplish this.

The most natural method is to "grab" the image with the mouse. Activate this behavior by selecting the "Grab Mode" item in the Mouse menu (which is the default at start-up). Then click on the image with the left mouse button. Hold the button down while moving the mouse, and the image will slide around with the mouse. Zoom out to make big moves, and zoom in to make precise moves. If you zoom in enough, you can navigate by single pixels.

The Control-Shift-G key combination will also activate Grab Mode. This key works even if the Viewer is in the foreground and the menus are hidden.

Items under the Position menu lets you jump to specific places in the image, such as "Center", "Top Left", and "Bottom Right".

Rotating and Flipping

Under the Effects menu, there are several items for rotating and flipping images: Rotate Right, Rotate 180, Rotate Left, Flip Vertical, and Flip Horizontal. These functions are self-explanatory. Note that rotation modifies the image, and it will have to be saved afterwards.

The Control-R and Control-L key combinations will also rotate an image right and left. These keys work even if the focus is on the Viewer. You can keep the main menu in the background, which is convenient if you are rotating all the images in a collection. Simply alternate between the Down Arrow key and the Control-R (or Control-L) key.


The Effects menu also has a "Scale Image..." item, which pops up a scaling dialog. Type in the desired image size, either as a number of pixels or as a percentage of the original size. Press the OK button to scale the entire image. This actually modifies the image data, so take care. If you make a mistake, you can undo the operation with the "Undo Last Edit" item under the Effects menu, or the "Revert Image" item under the File menu.

The "Lock Ratio" check box determines whether the original aspect ratio should be preserved, which is a fancy name for the ratio of the width to the height. Turning off this feature allows you to distort the image, making it "skinny" or "fat."

Technical note: neglight employs a sub-pixel sampling algorithm to avoid ugly pixel aliasing during the scaling operation. A 3x3 grid of samples (9 in total) are blended to produce each result pixel, so that the output appears much smoother.

Selecting, Cropping,  and Pasting


To enable selection, pick the "Select Mode" item under the Mouse menu. The Control-Shift-S key combination will also activate selection. As usual, this accelerator will work even if the menu bar is in the background.

When selection is active, use the left mouse bottom to draw a rectangle on the image. The selected area will appear normal, and the rest will appear grayish. Start drawing from any corner of the rectangle, and continue drawing to the opposite corner with the mouse held down. Release the mouse when you are done.

You can tweak a selection by holding the Shift key down while pressing the left mouse button near a corner of the rectangle. Then, move that corner to a new position. The opposite corner will remain in place. This feature is useful if you need to make a fine adjustment.

One interesting property of selection in neglight is that it is persistent. If you change which image you are viewing, then come back, the selection area will remain as you left it. This feature works even if you stop and restart neglight. The coordinates are stored in the neglight.xml file.


The Selection dialog has a Crop button, which crops the current image down to the selected area. This action modifies the image and must be saved afterwards. If you make a mistake, you can undo the operation with the "Undo Last Edit" item under the Effects menu, or the "Revert Image" item under the File menu.

Copying and Pasting


The Selection dialog has a Copy button, which copies the selected portion of current image into a small viewer on the dialog. After pressing the Copy button, press Paste button to switch to the Overlay dialog, which will show the same selection. You are now ready for pasting.


The Overlay dialog is your main tool for layering one image on top of (or underneath) another. The current image being placed is shown in the small viewer on the dialog. There are three ways to load an image into this viewer:

  1. Select a portion of an image with the Copy dialog. Press the Copy button to load the selection into the Copy dialog viewer. Press the Paste button to switch to the Overlay dialog.
  2. Press the "Pick..." button in the Overlay dialog. This will bring up a file chooser that allows you to load a file. The chosen image will be displayed in the Overlay dialog viewer.
  3. Use the left mouse button to drag a file from a Picker to the Overlay dialog viewer. You must "drop" the file directly into the viewer, not any other part of the Overlay dialog.

Now you are ready to paste onto a target image. Choose the target image with a Picker so that it is displayed in a Viewer. While the Overlay dialog is still active, click on the Viewer with the left mouse button. You should see the overlay appear, centered on the mouse.

Moving and Stretching

You have an opportunity to fine tune an overlay before making it "stick." You can reposition it by "dragging" it with the left mouse button. Press the left button anywhere and move the mouse. The overlay will slide with the mouse, providing immediate feedback. By zooming into the image, you can achieve single pixel precision.

The "Stretch" sliders on the Overlay dialog allow you to resize an overlay relative to the target image. Drag the sliders with the mouse, or type a stretch ratio into the white text boxes. You will see the overlay resize accordingly.


When you are satisfied that the overlay is correctly placed, press the "Place" button. The overlay will stick in place. Afterwards, if you click with the left mouse button, a new overlay will appear, and the old one will remain. This feature allows you to make several copies of the same image on a background image.


By default, the Overlay dialog uses a pressure of 100%, which means that the overlay is completely opaque. None of the underlying pixels bleed through. Use the "Pressure" slider to change this behavior. For example, a pressure of 50% causes 50/50 mixing. In other words, the result is an even mix of the overlay pixels and the underlying pixels. If you lower the pressure to 10%, the overlay becomes ghostly and almost invisible. If you raise the pressure to 90%, only a small amount of the underlying pixels will bleed through.


Neglight supports "transparent" pixels. Specifically, every pixel is described by 4 values: R, G, B, and A. R, G, and B indicate the red, green, and blue components. A perfectly black pixel has 0 (zero) for all 3 values, and a perfectly white pixel has 1 for all 3 values.

The "A" component, or "alpha" channel, indicates transparency. If A is 1, then the pixel is completely opaque, which is the default. If A is 0, then the pixel is completely transparent, and the other 3 components do not matter. An A of 0.5 indicates a translucent pixel that allows half of the "light" to shine through.

We will describe how to create transparent and translucent pixels in a later section. We mention the topic here because transparency affects overlays.

Blending Methods

By default, the Overlay dialog uses the basic "overlay" method when blending pixels. This means that the new pixels should replace the old pixels, which is the behavior that most people expect. However, the mathematics is complicated because of variable pressure and transparency. Unfortunately, we must get very technical here.

Let (RO, GO, BO, AO) be the overlay pixel or new pixel. The previous section describes the meaning of A or "alpha". Let (RU, GU, BU, AU) be the underlying pixel or old pixel, and let (RR, GR, BR, AR) be the result. Finally, let P be the pressure. All values vary between 0.0 and 1.0 here. Neglight uses the following formulas:

FU = AU(1 - FO)
AR = FO + FU

These formulas implement a weighted average between two values, where the weights are determined by transparency and pressure. The computation may seem elaborate, but it give the right results, even when layering translucency on top of translucency.

The Overlay dialog supports several other blending methods, which can produce interesting, artistic effects. The next method in the list is "Underlay," which simply reverses the order of layers. Technically, the formulas for Underlay are:

FO = AOP(1 - FU)

where the rest are the same. When using Underlay, the background image must have transparent areas, which act as "key holes." The image being inserted will only be visible through these holes. If the background is a normal, opaque image, the Underlay mode will produce no effect.

The Add mode adds the component values, according to the following formulas:


Note that translucent pixels have less weight than fully opaque pixels. Adding anything to pure white produces only white.

The Subtract mode subtracts the component values:


Subtracting anything from pure black produces only black. Using Subtract mode on a white or bright background produces an interesting negative color effect.

The Replace mode is a little like Overlay mode, except that it ignores transparency. The new pixels simply replace the old pixels regardless of the alpha values:

FO = P
FU = 1 - P

The result is simple to understand but a little crude.

The last four modes are R->A, G->A, B->A, and A->A. These simply assign the A or alpha value of the target from one of the four components of the overlay. This feature is useful for cutting out portions of a target image using an overlay as a template or mask. It will discussed again in the section on irregular cutouts and overlays.


Two menu items allow you to print. The "Print Image..." item in the File menu will print the image in the current Viewer. The "Print Selected Images..." items will print all the images that are selected in the current Picker. This second option lets you print many images at once.

Either menu item will bring up the standard Print dialog, which allows you select the printer and the number of copies. Then press the OK button to bring up the Print Layout dialog.

Neglight attempts to pack as many images as possible onto a page, subject to the constraints in the Layout dialog. The "Border" field is the minimum acceptable distance between the edge of the paper and the images. The "Interior Margin" field is the minimum distance between images. The "Image Size" field specifies the output size of the actual images. Radio buttons determine whether this is the minimum edge length or maximum edge length.

For example, suppose an image is 2000 pixels by 3000 pixels. If the "Image Size" field is set to 6 inches, and the "minimum" button is chosen, then the image will print as 6 inches by 9 inches. The minimum edge length is 6 inches. If the "maximum" button is chosen, then the image will print as 4 inches by 6 inches instead.

The "Crop To Selection" tells neglight to print only the currently selected portion of each image. This is like cropping, except that the image is not modified. Remember the selection is persistent, so once you select an area (using the "Select Mode" item in the Mouse menu), it sticks with the image, even if you restart neglight. This feature might be used, for example, to print just a favorite grandchild in a family photograph without wrecking the original picture.

The Preview button brings up a preview of how neglight will place the pictures on the pages. Use this feature to double-check that the margins and sizes are reasonable before actually printing.

Drawing, Painting, and Filling

Neglight has some basic facilities for creating images from scratch, or drawing onto existing images. The Drawing tool allows you to make basic lines and geometric shares. The Painting tool allows you to "paint" an image with simulated brush strokes. The Fill tool allows you to fill areas of an image with solid colors according to various edge detection algorithms.

Color Selection


The Drawing dialog is activated with the "Drawing..." item in the Mouse menu. This dialog has a large number of options which allow a great variety of effects.

The Shape panel controls the basic shape being drawn. "Spot" is a single dot. "Line" is a straight line. "Rectangle" is a filled rectangle. "Frame" is just the outline of a rectangle. "Disk" is a filled circle or oval. Finally, "Circle" is just the outline of a circle or oval.

The "Size" slider controls the thickness of lines. Assuming this value is 10, dots will have a diameter of 10 pixels, and lines will have a thickness of 10 pixels. Thickness also applies to the outlines or borders of rectangles and circles. Therefore, a rectangle will be 5 extra pixels larger on all sizes, whether it is filled or not.

The "Edge" panel controls how Size is implemented. "Hard" indicates that there should be an abrupt transition between filled and unfilled pixels, producing a hard edge. "Soft" indicates that pressure should drop off linearly. For example, is Size is 10, then pressure will decrement by 10% for every pixel of distance from the center of the dot or line. "Gaussian" indicates an exponential decay, which realistically reproduces the blurring effect of an actual lens. "Fuzzy" combines exponential decay with random noise.

The "Corner" panel controls the shape of corners and line ends. "Square" produces a clean, square corner. "Round" produces a circular corner. "Flare" creates horizontal and vertical spikes. "X Flare produces diagonal spikes.

The "Repetition" panel controls has often the same shape should be repeated. "Once Only" will draw exactly once for every left mouse click. If you hold the left mouse button down and move the mouse, the shape will be continuously erased and redrawn to follow the mouse, allowing you to place the shape precisely. "Slow" causes a draw operation to occur every 1/2 second, and shapes are not erased. "Fast" repeats every 1/10 second. "Maximum" repeats every 1/100 second.

There are two color choosers. "Normal Color" controls the normal drawing color. "Shift Color" specifies an alternative color, which is active when the Shift key is held down while drawing. This feature allows you to quickly switch back and forth between two colors, such as foreground and background, for example.

The "Pressure" slider controls how much pressure to apply. A value of 100% (the default) draws opaque pixels. A value of 50% will cause a 50/50 blend between the new color and the underlying color.

Holding the Control key will constrain the shape being drawn, to make it less free-form. Lines are forced to be perfectly horizontal, vertical, or diagonal. Rectangles are forced to be perfectly square. Ovals are forced to be perfect circles.


The Painting dialog is activated with the "Painting..." item in the Mouse menu. This tool reproduces the effects of actually painting of paper. It is more artistic and less precise than the Drawing tool.


Irregular Cut-outs and Overlays

Warping and Straightening

Brightness, Contrast, and Tint

JPEG Image Properties

Command Line Tools