At the moment I'm using getPixel() to scan the screen and get coord colours, but it's seriously slow.

What's the best way to do it?

Get a screen grab as a .png or .jpg and then process it. Would this be faster...

Well I wrote a class on this a while back. GetPixel was significantly slower for me. It will be faster than using GetPixel since you already have a list of all colours. It's like a bitblt vs. setpixel 5000 times.

I'll PM you a part of the class.