Digital Photo Crop Overlay (D-PCO)

Software for aiding artistic composition

Stephen Roxburgh, February 2021

[Back to main Downloads page]



D-PCO is a small utility program that displays a moveable, sizable and transparent grid on a computer screen. I wrote this as an aid to cropping and composing digital photographs, but the various grids and guides can be overlain onto any image displayed on a computer screen. In the basic 'View' mode D-PCO simply overlays the grids on top of the current screen to allow visual assessment, i.e. in 'View' mode it is simply a visual tool for aiding composition. In the 'Edit' mode an image can be loaded into D-PCO from the menu, and then subsequently rotated, cropped, and saved (with or without the guidlines embedded within the photo). In Edit mode D-PCO can therefore be used as a photo cropping tool, as well as a tool for embedding grid lines and other guides within the photo itself.

The program has 42 pre-defined overlays, including the 'rule of thirds', regular grids, and a range of overlays based on the golden ratio, including the related Fibonacci spiral and dynamic symmetry guides. The aspect ratio can be locked to a number of common formats (e.g. 1x1, 6x4, 7x5, A4, Letter, etc.) or the frame can be adjusted 'freeform'.

Windows XP sp 3 or greater.

Download & Installation
Download --> Simply dowload and unzip the single executable file, and run. Some virus checking software (such as Nortons) may mistakenly identify the program as a potential threat. If you are still concerned, the downloaded zip file's SHA-256 checksum (a kind of digital fingerprint) can verified using the calculator at (just drag and drop the zip file onto the webpage). The returned value should be 19894292747c92724159b29951c6e360065973603022b35079ae03a607be1cf4.

When executed the program will display the grid on the screen, together with the control menu. To move the grid, simply click anywhere within the interior and drag. To re-size, simply click and drag one of the corners.

In View mode the mouse wheel can also be used to resize (roll backwards and forwards) and rotate (roll backwards and forwards whilst pressing the left mouse button).

The control menu functionality is described below.

(A) File menu
This is used in 'Edit' mode to load and crop/edit an image. Described below under 'Edit mode'.

(B) Aspect ratio drop-down selector
A number of pre-defined aspect ratios are available, or the frame can be re-sized freeform. Selecting 'Custom' will allow you to enter your own ratio

(C) Overlay grid options
Select from a number of overlays. For some selections, such as a regular grid, the number of drawn lines can be changed using the '# Lines' selector. The line width can be changed with the 'line width' selector, and the line colour by left-clicking on one of the 16 coloured squares.

Variations on the Golden Section.

Variations on the Rabatment of the rectangle.

Variations on Dynamic Symmetry.

Variations on the application of musical consonances to composition, as described in Chapter IV of Charles Bouleau's The Painter's Secret Geometry

Miscellaneous guides including the The Rule of Thirds, simple triangles, an arbitrary grid with user-defined rows and columns, and a blank rectangle

Extra overlays, marking the image centre (either diagonally or horizontally), and a phi grid. The line colour of these overlays can be changed independently of the main grid, by right-clicking on the colour palette.

The 'Pattern repeats' option allows up to four replicates of the same overlay to be repeated either side-by-side (in landscape) or on top of one-another (in portrait). Dividing lines between adjacent overlays can be toggled on and off.

Multiple patterns can be laid upon one-another by checking the 'Allow multi-select' option.

(D) Dispay options

The frame can be displayed either in portrait or landscape, and the pattern can be flipped either horizontally or vertically, and rotated. The line width can be changed, and for some selections (such as drawing a regular grid) the number of lines can also be changed. The 'Add a new overlay' button opens up another instance of the menu, with a new overlay that can be manipulated independent of the first.

Rotate the overlay left/right, and reset.

Add a new overlay.

Toggle a mask to black out the area surrounding the current overlay, and toggle whether the grid lines of the overlay are visible or not.

Checking 'Allow multi select' allows multiple different overlays to be stacked on top of one-another.

(E) Program control
The 'Hide/Unhide button can be used to temporally hide the overlay - useful for gaining access to the underlying image. The program can be terminated with 'Exit'.


Edit mode
The file menu can be used to open an image, using a standard Windows open file dialog box. Supported file formats are Jpeg (*.jpg), Portable Networks Graphics (*.png), Windows bitmap (*.bmp), Tagged Image Format (*.tif) and Graphics interchange format (*.gif). After opening, a window will be displayed showing the loaded file, as well as the following menu:

Menu button actions

Show/Hide the photo: To temporarily hide the loaded photo.

Blacken screen: This is used to isolate the image from the underlying screen display, which can sometimes be distracting if you are trying to focus soley on editing the image

Toggle mask region: This is used to isolate the area currently within the selected overlay extent - again making it easier to assess the composition.

Toggle hide overlay gridlines: This is used to temporarily hide the overlay gridlines.

Photo rotate options
: rotate left, rotate right, and reset.

Snaps the overlay to the full extent of the image.

This button allows the cropped image to be saved to file. If the 'Toggle hide overlay gridlines' button is down then a simple crop of the selected region is performed. When checked, with the grid lines of the overlay visible, then the overlay is also embedded within the saved file. The file formats available for saving are the same as those for opening.

Similar to exporting, except rather than saving to file the cropped image is pasted to the Windows clipboard.

Close the photo and return to the simple 'View' mode.

A number of these options are also available from the 'File' menu, and from a popup menu by right-clicking on the overlay.

A typical editing session might look something like the following.

After opening a file the screen will look something like that shown below (note that the loaded image can be moved by clicking and dragging on the black border, and resized by clicking and dragging on the gray resize arrow on the bottom right corner).

Notice in the above the defualt red lines of the overlay do not show up very well over this image - a colour with more contrast (e.g. white) can be selected by clicking on the colour selector on the main menu. Also notice the distracting Windows clutter in the background (other applications, the taskbar, etc.)? This can be hidden by pressing the 'Blacken screen' button. After making these selections the screen now looks like this:

The overaly can be moved and resized as appropriate (and the image rotated/straightened if required). Below I have re-sized the overlay slightly, with one of the preselected aspect ratios (the 'RootPhi'), selected the dynamic symmetry overlay, and re-positioned it to align the focal point (the jumper's face) at the intersection of the Phi golden lines.

To get a better idea of what the final crop might look like the 'Mask region' toggle button can be used, and the 'Toggle hide overlay' can be pressed. Note the overlay can still be moved and resized, even though it is both masked and hidden.

Prior to the final save I selected the grid option of the overlay (previously it was the dynamic symmetry overlay), selecting 6 vertical lines and 5 horizontal lines, and changing the colour to dark gray so as to not be so obvious if it were to be printed (e.g. if the lines were to be used as a guide for transfering the image to a drawing). This final selection was then exported to a PNG file (with a different filename to the original!); the final result is shown below.

Download -->