This is just a shot in the dark, but I guess that the call to setClip on the original Graphics object (g) is not affecting it's derived DirectGraphics object (dg). Although this doesn't comply with the docs, it could be a bug.
If this is really the case, you could try to set the clipping region before you get the DirectGraphics object as a workaround:
Code:
// first set the clip on g
g.setClip(20, 25, 12, 14);
// then get the reference to dg
dg = DirectUtils.getDirectGraphics(g);
// then draw the image
dg.drawImage(tempImg, 20, 25, 0, dg.FLIP_HORIZONTAL);
Like I said, this is just a hunch, so I'm not sure it'll work, but good luck with it anyway 
shmoove