if (r.x+r.width>imageWidth)
r.x = imageWidth-r.width;
if (r.y+r.height>imageHeight)
r.y = imageHeight-r.height;
if (srcRect==null)
<BUG>srcRect = new Rectangle(r.x, r.y, r.width, r.height);
else {</BUG>
srcRect.x = r.x;
srcRect.y = r.y;
srcRect.width = r.width;

if (r.x+r.width>imageWidth)
r.x = imageWidth-r.width;
if (r.y+r.height>imageHeight)
r.y = imageHeight-r.height;
if (srcRect==null)
srcRect = r;
else {
srcRect.x = r.x;
srcRect.y = r.y;
srcRect.width = r.width;
