Brick is a utility written in java for making composite images, which are made of many small images. The user provides a master image, which is broken down into many small blocks and re-assembled using small pictures in place of the original blocks. The eye tends to integrate the result and the original picture remains discernable! An example from 1998 is the poster for the movie "The Truman Show". Here, Jim Carey's face is clearly visible; however on closer inspection we can see that the image is created from thousands of small pictures. Brick lets you make images like this from your own library of photographs. Some low resolution examples can be seen at the Brick Homepage.
Brick is not a general purpose graphic toolkit. It has a very basic user interface and lacks some features that would be ideal for making composite images. Perhaps a future version will have some of these, but for now it is a rudimentary utility for building composites. General purpose image editors will be handy for preparing your master photo and a few are suggested below.
Brick will run on a 150 MHz Pentium computer with 32Meg of RAM. However, you will only be able to create small composites conveniently on such a system. As the size of your composite grows, say to 8.5x11 inches at 200dpi containing 2500 small pictures, a more powerful computer is required. A faster Pentium with 96Meg of RAM and 100Meg of free disk space will allow you to create composites as large as than 8.5x11 inches containing many thousands of sub-pictures. It make take several hours of computation, but its possible if your patience is up for it! Brick is a threaded program which should amicably share your computer's resources with other applications. Although Brick can create large images (for example a 50Meg TIF file), some shareware graphics programs will not be able to display them unless your system has plenty of RAM.
Brick is intended for image enthusiasts. Who falls in this group? Owners of digital cameras are the major target audience for Brick. After a year or two with a camera, people may find they have thousands of photos of their family and friends stored on CDR or other removable media. This kind of personal library is ideal for making composites of.... family and friends. Collectors of images from other sources aren't precluded of course; a composite of a friend who likes sailing, made entirely of images of sailboats collected from the internet might be an interesting gift.
Brick is written in Java. Java is a programming language which allows the author to write code once and have it work on many different operating systems such as Windows or MacIntosh. For some users, the steps required to run a Java program may seem unfamiliar at first, but they are not difficult:
If you are interested in seeing more messages from Brick, you can run it by replacing "javaw" above, with "java". This will open a terminal window where Brick displays extensive progress messages. At first, downloading the JRE might seem like a bother. One should realize however, that Windows applications developed in C++ have a similar burden, the MFC. Frequently this package is already installed with the operating system or by a commercial application.
Brick is divided into two halves. The first is responsible for looking at each sub-picture in your image library and determining its average red, blue and green colour values. These colour statistics are then saved in a library file for Brick to refer to later. The second half of the program breaks a master image into many smaller blocks and determines the average colours of each block. The library images are then ranked based on colour and the best "fits" are inserted into the master composite image. The eye integrates the average colour of the sub-blocks so that we see the original image.
Much fancier algorithms could be employed to find a better match between library images and the master sub-blocks. The computer could be told to look for horizontal, vertical or diagonal lines and include these features in the ranking process. An estimate could also be made of the "colour variance" in each block, so that "busy" sub-pictures are better fitted to complex parts of the master image.
Use of Brick can be broken down into a number of steps. The process is somewhat iterative, so it may be necessary to repeat steps in order to achieve the results you are looking for. See the tutorial for thorough instructions.
Brick must compile colour statistics about the images used to make up a master composite. To build a library, you specify a path to your pictures and let Brick look at each one. On a 166MHz Pentium with 96Meg of ram, a library of 3000 images can be compiled in approximately 1 hour. See the tutorial for details.
The best results will be obtained when a master picture is chosen with subject matter which mostly fills the photo. If this is a persons face, it should be a close up if you want to see the details in the mosaic. The reason for this is that we are representing the original image with "pixels" that are much larger than normal. The eye does its best to see the original photo; however it can't see what just isn't there. A photo showing a person from the waist up will create a mosaic with little detail in the face, unless it is extremely large.
A master photo must be subdivided to create the mosaic. The more small pictures which make up the master, the better the effect will be. However, the small pictures must still be discernable, or the point of the composite will be lost. Keeping the sub-pictures visible means increasing the size of the final composite. A compromise must be reached since banner printing is very expensive! See the tutorial for a description of choosing an appropriate number of sub-pictures.
If your image library contains thousands of individual photos, you may discover that there are some that you don't want included in your mosaics. Maybe there is a picture of your home for insurance purposes or of someone you just don't like. Brick let's you select individual images or paths and mark these as "unwanted" for the purpose of mosaic building. In subsequent composites, Brick will not include these images. See the tutorial for a description of this process.
Brick composites may look nice on the screen, however its on the printed page that the real detail is evident. Screen resolution just can't beat a good colour laser print. Inkjet printers can also produce excellent quality. At this time (1999), service providers will make colour laser prints with the following approximate costs:
Paint Shop Pro is a full featured image editor with filters, rotations and other manipulation tools. It needs more memory to properly display a very large composite than Graphics Workshop below. |
Graphics Workshop is a good batch image processing program. It permits change of image type amongst many many formats, batch scaling, and can show thumbnail versions of each picture. |
GIF Construction Set lets you easily make animated GIF and AVI files. |
QPV is the fastest and easiest image viewer I have seen. |
THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT WARRANTIES OF MERCHANTABILITY OR OF FITNESS FOR A PARTICULAR PURPOSE OR ANY OTHER WARRANTIES WHETHER EXPRESS OR IMPLIED.
This software is provided free and accordingly the entire risk arising out of the use or performance of the software remains with you.
IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT DAMAGES OR ANY INDIRECT, PUNITIVE, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES OF ANY KIND ARISING OUT OF THE USE OF OR THE INABILITY TO USE THE SOFTWARE, EVEN IF THE AUTHOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.