This is an implementation of Haeberli's Impressionistic Applet. The user initiates a painting session by loading an image. A corresponding blank canvas is created. By painting over the blank canvas, the original image is sampled and revealed through various brush styles and sizes. The user can:

Choose among circular, point, and line style brushes.
Control brush size by the keys '+' and '-'.
Specify line stroke orientation by RMB dragging on the canvas.
Define a new brush.

The process for defining a brush is simple: key 'd', which puts the user in define mode, draw the shape of the brush with distinct points using the middle mouse button , key 'e' to end the sequence.

Once defined, the user can use this new brush in the same manner as the point, circle, and line. Having full control over brush parameters is critical to any painter. Defining the shape of the brush is one of the more important tools a painter can have. This simple idea can be extended in many ways, to allow more complex shapes and textures.

An example of the painter's palette is show below. The color is sampled from the ubiquitous 'lena' image. The palette demonstrates circles, points, and lines in the first, second, and third rows, respectively. Different sizes and orientations are sampled. Finally the last row shows two examples of user defined brush shapes.

Brush Styles

Below are some example paintings:

The bike image was first abstracted with large circle brushes, then painted over with smaller circle brushes. The bikes were painted with a point brush. Finally, lines were drawn around the windows and the edges of the barn. The line drawings give the windows a sense of reflection.

Bikes

The portrait was first abstracted with large circle brushes. The face was painted over with smaller circle brushes. The facial features (eyes, nose, mouth, crease around the mouth) were painted over by a fine point brush to emphasize the emotional detail. The background was then painted with line strokes in different orientations.

Tired Taken from Gilberto Oliveira Jr