Well, before doing anything fancy, I would try it out at some random coordinates by just doing:
int srcX = 100;
int srcY = 150;
and see if I could get ONE dot to appear.
Then eventually, you want to make it so that srcX takes on multiple values that are regularly spaced along the source image coordinates. e.g. if the image width is 600, and numDotsWide is 10, then you'd want srcX to be:
0, then 60, then 120, then 180, ... etc.