Brick Mosaic Builder Help


Table of Contents


What is Brick?

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.

Table of Contents

System Requirements

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.

Table of Contents

Who is Brick intended for?

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.

Table of Contents

How do I run Brick?

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:

  1. Unzip the distribution file "brick.zip" into a folder of your choice.
  2. Visit Sun's website and download the Java Runtime Environment (JRE) version 1.2 or later. Currently this is the download page; however Sun may change this address in the future.
  3. Follow Sun's instructions on installing the JRE.
  4. Create a short cut or type at your command prompt, "javaw -jar brick.jar", without the quotes.

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.

Table of Contents

How does Brick work?

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.

Table of Contents

How do I use Brick?

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.

  1. Build an image library. Or build several libraries based on subject matter.
  2. Choose a master image which is mostly filled by your subject of interest.
  3. Play with the number of sub-pictures in the master and see the results.
  4. Decide on a final size and resolution, and build a large mosaic file (TIF format).
  5. Take this TIF image to a colour laser printer service provider, or use a nice inkjet printer (laser output will always look better).

Table of Contents

Building a library of sub-pictures

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.

Table of Contents

Choosing a master image

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.

Table of Contents

Size, resolution and subdividing the master

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.

Table of Contents

Editing the library

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.

Table of Contents

Printing your images

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:

Typically, most colour laser printers are 400dpi with 256 shades of each of red, blue and green. Inkjet printers are capable of only "colour/no colour" and must simulate shades of colour by grouping different numbers and sizes of coloured dots. For this reason, colour laser is still superiour. Brick composite TIF files tend to be fairly large, approximately 40Meg for an 8.5" x 11" file. Removable media, or even CDR discs can be used to transport your files to the service provider.

Table of Contents

Links to useful image editing shareware

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.
Table of Contents

Registering this shareware

If you enjoy Brick, or would to like learn more about Java and how Brick works, please consider registering the program for $10. You will receive the Java source code and will be notified if the program is upgraded. Contact the author through e-mail to arrange snail mail payment via personal cheque.
Table of Contents

Brick user interface wishlist

There are a number of features that would clearly be beneficial in constructing a mosaic and maintaining the image library:
Table of Contents

Known Bugs

Table of Contents

Disclaimer

Brick v1.1 by David Purcell
Copyright 1999
All Rights Reserved.

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.

Table of Contents