有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

swing Java:将基于另一个图形对象的新图形对象导出为PNG

我一直在尝试导出图形对象的图像

这是该方法的外观:

    private BufferedImage paintImage;

public void paint(Graphics g){
    super.paint(g);

    paintImage = new BufferedImage(500, 600, BufferedImage.TYPE_INT_ARGB);
    Graphics2D statsExGraphics = paintImage.createGraphics();
    imageText.paint(statsExGraphics);

    try{
        ImageIO.write(paintImage, "PNG", new File("src/statsexport2.png"));
    }catch(IOException e){
        e.printStackTrace();
    }

    map.paint(g);
    imageText.paint(g);

    switch (backgroundState) {
        case 1: 
            grid.paintItems(g);
            penguin.paint(g);
            purpleBear.paint(g);
            blueBear.paint(g);
            break;
        case 2: 
            EndgameGraphics done = new EndgameGraphics(endCondition);
            done.run();
            break;
        default: System.out.println("Error invalid background");
    }
}

我会将g对象强制转换到Graphics2D对象上,但是BuffereImage对象不会连接到图形

我需要全部导出对象,以便在游戏结束时将其重新显示到面板上。done(EndgameGraphics对象)是生成一个新JFrame的代码,其中包含一个背景图像和一个按钮,我需要将imageText图形对象重新插入到这个新JFrame中。在EndgameGraphics中,我处理了包含上述方法中最初绘制的所有内容的JFrame,并实例化了一个新的JFrame

我在想这句话

imageText.paint(statsExGraphics);

不是一个执行了我要寻找的逻辑的语句,我不确定从这里走到哪里

当前代码正在生成一个空白图像。是否有Graphics2D的方法可以接受Graphics的参数并将其绘制到Graphics2D对象上

也许有另一种方法可以复制这个图形对象,并在EndgameGraphics中重新创建它,以添加到新的JFrame中

任何帮助都将不胜感激,谢谢


共 (0) 个答案