1. A method of generating a gray scale image on a surface comprising a matrix of pixels, the method comprising the steps of: depositing a first dot of a predetermined size on a selected pixel on the surface; determining a gray level error of the deposited first dot; scaling the error and assigning the scaled error to a pixel adjacent to the selected pixel; determining a size of a second dot in response to the scaled error to provide a second dot of a predetermined size; depositing the second dot of a predetermined size on the adjacent pixel.