If you scroll down you should see a rough rendition of a million dots generated by building a size x size square of the original image, then a square of that image and so on.

The canvas size of 800 = 800x800 pixels clearly isn't enough to render a million dots properly. A value of (say) 10,000 may render all the dots but high values can crash the browser.

The rendered images can be downloaded by right-clicking and selecting "Save As..." (or equivalent on your device).

This is all implemented in-browser using conventional HTML, CSS & Javascript. The code draws the initial image onto a HTML <canvas>, then draws that canvas's content onto another canvas as many times as required (multiplier x multiplier), then repeats for the number of iterations specified.

Here's a blog post with more background and the source code.

Use this form to upload your own image and draw a million of those :