This approach is bad for several reasons 1. less control. 2. interfere with subsequent graphics manipulations. 3. potential black/white strip at the edge due to rounding. Simply using Graphis.drawImage (Image img, int x, int y, int width, int height, ImageObserver observer) is good enough.