The processing sketch can be found in here. The program is taking a picture using a mouse click and starts to draw the painting in impressionist style.
The program goes trough random x and y location pixels take the R , G, B values of that particular pixel and uses that value to fill the brush stroke on that location. Because of this process of picking random points one by one and putting a brush stroke over it you don't see the end result immediately. It takes a little bit time for the painting to appear. The brush stroke by brush stroke reveal of the painting mimics the actual process of portrait making. The subject need to sit down for a bit to be able to see the end product.
I am trying to implement a tool that would save the painting and email it to the person but I couldn't be able to figure it out yet. UPDATE : IT IS SAVING NOW :)
I wanted to create the sense of oil painting by placing a canvas on an easel and project the image on the canvas. It makes the experience much more organic.
I am hoping to add different brush strokes with the use of comparison in the RGB colors of the pixels - For Example if the pixel color is dark use this brush stroke , if it is close to the skin tone use this stroke.