FWIW, I believe the Paint tool in Windows will do this, too, in case you don’t have Photoshop. If you want something more powerful but don’t want to part with the green for Photoshop, you want the Gimp.
Not sure what you mean by easy. First, scan it to some kind of graphics file which you can edit (.bmp, .jpg, etc.).
Then use some kind of editor such as GIMP to draw each district as a polygon, and use ‘flood fill’ to color them in. It would take a good bit of time, I think.
thanks for the replies. I’m on a Mac, not Windows - is there a similar Mac tool?
by easy, I meant that I don’t want to have to re-trace the boundaries manually. ideally, I’d like to be able to put the cursor over a particular riding, click the colour I want, and have the colour fill up to the boundaries of that riding.
Any simple graphic editting program can do that. If the Mac comes with one built-in, it can do that already.
The trick will be to scan the document as black & white, so there are no colors to distract the program.
When you click the “fill with color” button, the logic it uses is to replace the pixel at the cursor location with the new color, then keep replacing all adjacent pixels which are the same color as the original with the new color. The effect is the new color will spread until it encounters an un-broken border of any other color or colors.
Note I said “un-broken”. That means that if there are any gaps in the line separating two regions, the new color will “leak” into the other region. Your scanner will probably make that mistake at least once.
If that happens, just click undo to remove the new color, then zoom in along the border to find the missing pixel. Turn it to your border color (probably black), and try again.
If your regions have words in them, you’ll also find that the color fill won’t get into the inside of Os, Ds, Rs, etc.
While the net effect is the same, the actual algorithm used is a bit more complicated (but quicker to execute). Roughly, it finds all of the bounded regions in the image, occasionally updating a table to note that two regions are in fact connected. Then, it looks at the origin point to see what region it’s in, and changes that whole region (and any regions noted as connected to it in the table) to that color.
On the practical side of the question, the program I use for things like this is Graphic Converter. The program itself is free, but the documentation for it isn’t, which can be a bit frustrating. For your application, though, all you need to do is to click on the bucket-of-paint icon, and then click somewhere in the district to be colored. If you double-click on the paintbucket icon, you can change the tolerance of the fill (i.e., how close a pixel has to be to an adjacent pixel to count as the “same color”), which will probably be useful for starting with a scanned image.