@Override
    public boolean drawImage(Image img, int dx1, int dy1, int dx2, int dy2, 
            int sx1, int sy1, int sx2, int sy2, ImageObserver observer) {
    """
	Draws part of an image (defined by the source rectangle
	{@code (sx1, sy1, sx2, sy2)}) into the destination rectangle
	{@code (dx1, dy1, dx2, dy2)}.  Note that the {@code observer} is ignored.
	
	@param img  the image.
	@param dx1  the x-coordinate for the top left of the destination.
	@param dy1  the y-coordinate for the top left of the destination.
	@param dx2  the x-coordinate for the bottom right of the destination.
	@param dy2  the y-coordinate for the bottom right of the destination.
	@param sx1 the x-coordinate for the top left of the source.
	@param sy1 the y-coordinate for the top left of the source.
	@param sx2 the x-coordinate for the bottom right of the source.
	@param sy2 the y-coordinate for the bottom right of the source.
	
	@return {@code true} if the image is drawn.
    """
        int w = dx2 - dx1;
        int h = dy2 - dy1;
        BufferedImage img2 = new BufferedImage(w, h, 
                BufferedImage.TYPE_INT_ARGB);
        Graphics2D g2 = img2.createGraphics();
        g2.drawImage(img, 0, 0, w, h, sx1, sy1, sx2, sy2, null);
        return drawImage(img2, dx1, dy1, null);
    }
@Override
    public boolean drawImage(Image img, int dx1, int dy1, int dx2, int dy2, 
            int sx1, int sy1, int sx2, int sy2, ImageObserver observer) {
        int w = dx2 - dx1;
        int h = dy2 - dy1;
        BufferedImage img2 = new BufferedImage(w, h, 
                BufferedImage.TYPE_INT_ARGB);
        Graphics2D g2 = img2.createGraphics();
        g2.drawImage(img, 0, 0, w, h, sx1, sy1, sx2, sy2, null);
        return drawImage(img2, dx1, dy1, null);
    }
@ Override public boolean drawImage ( Image img , int dx1 , int dy1 , int dx2 , int dy2 , int sx1 , int sy1 , int sx2 , int sy2 , ImageObserver observer ) { int w = dx2 - dx1 ; int h = dy2 - dy1 ; BufferedImage img2 = new BufferedImage ( w , h , BufferedImage . TYPE_INT_ARGB ) ; Graphics2D g2 = img2 . createGraphics ( ) ; g2 . drawImage ( img , 0 , 0 , w , h , sx1 , sy1 , sx2 , sy2 , null ) ; return drawImage ( img2 , dx1 , dy1 , null ) ; }
Draws part of an image (defined by the source rectangle
{@code (sx1, sy1, sx2, sy2)}) into the destination rectangle
{@code (dx1, dy1, dx2, dy2)}.  Note that the {@code observer} is ignored.

@param img  the image.
@param dx1  the x-coordinate for the top left of the destination.
@param dy1  the y-coordinate for the top left of the destination.
@param dx2  the x-coordinate for the bottom right of the destination.
@param dy2  the y-coordinate for the bottom right of the destination.
@param sx1 the x-coordinate for the top left of the source.
@param sy1 the y-coordinate for the top left of the source.
@param sx2 the x-coordinate for the bottom right of the source.
@param sy2 the y-coordinate for the bottom right of the source.

@return {@code true} if the image is drawn.
Draws part of an image ( defined by the source rectangle { @code ( sx1 sy1 sx2 sy2 ) } ) into the destination rectangle { @code ( dx1 dy1 dx2 dy2 ) } . Note that the { @code observer } is ignored .