如何在VolatileImage上绘制BufferedImage的内容?

时间:2015-04-07 11:41:37

标签: java bufferedimage

我目前正在尝试用Java创建VolatileImages。计划是使用一个BufferedImage的ImageSheet和一个返回易失性子图像的方法getSubimage()。

    public static VolatileImage getSubimage( ImageSheet sheet, int x, int y, int transparency ) {

    if ( x * sheet.tilesize >= 0 && x * sheet.tilesize <= sheet.img.getWidth() 
            && y * sheet.tilesize >= 0 && y * sheet.tilesize <= sheet.img.getHeight() ) {

        BufferedImage temp = sheet.img.getSubimage( x * sheet.tilesize, y * sheet.tilesize, sheet.tilesize, sheet.tilesize );

        VolatileImage retVal = gc.createCompatibleVolatileImage( temp.getWidth(), temp.getHeight(), transparency );

        Graphics2D g2d = retVal.createGraphics();
        g2d.drawImage( temp, 0, 0, null );
        g2d.dispose();
        retVal.flush();

        return retVal;

    } else return null;

}

让我解释一下这里使用但未初始化的2个参数:gc和sheet.tilesize:gc是我的ScreenDevice的GraphicsConfiguration,而sheet.tilesize是一个通用大小,用于我要加载的工作表中的所有图像后来。为了我的测试目的,它是32,因为我的图像有一个高度和32的宽度。 现在我的问题是,retVal没有内容。我已经尝试通过sysouts找到问题的根源,发现ImageSheet正确初始化并且工作正常,当我尝试在我的VolatileImage上绘制它的内容时它不起作用...有没有人看到问题,可以帮帮我吗?

0 个答案:

没有答案