Halftoning techniques like dithering and error diffusion source code added