如何将applet的内容转换为图像?

时间:2013-01-11 06:51:10

标签: java applet bufferedimage graphics2d

  

可能重复:
  Convert a Graphics2D to an Image or BufferedImage

对不起。这是一个非常基本的问题。但我对这个平台很新。我正在使用graphics2d绘制函数绘制一条线。我想将此作为图像保存到我的系统中。我搜索了它,发现BufferedImage类在执行此操作时非常有用,然后使用imagedraw函数。

但我无法弄清楚我的代码中是如何使用它的。任何人都可以帮助我吗?

这是我的代码。

import javax.imageio.ImageIO;
import javax.swing.*;
import java.awt.event.*;
import java.awt.geom.Line2D;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;

public class DrawAndSaveImage extends JApplet {
    public void init() {
        setBackground(Color.lightGray);
    }

public void paint(Graphics g) {
    Graphics2D g2d = (Graphics2D) g;
    g2d.setPaint(Color.black);
    g2d.draw(new Line2D.Double(50,150,150,150 ));

}

public static void main(String s[]) {
    JFrame frame = new JFrame("sample image");
    JApplet applet = new DrawAndSaveImage();
    frame.getContentPane().add("Center", applet);
    applet.init();
    frame.setSize(200, 200);
    frame.show();
}
}

2 个答案:

答案 0 :(得分:1)

首先,您可以创建一个BufferedImage实例,如下所示:

    private BufferedImage image = new BufferedImage(600, 800, BufferedImage.TYPE_INT_RGB);

然后你可以从中获取Graphics2d对象:

    Graphics2D g2d = image.createGraphics();

然后,您可以使用ImageIO API保存图片。

答案 1 :(得分:1)

    除非您尝试创建混合应用程序,否则
  1. JFramemain不应在applet中使用。

  2. 请勿覆盖paint()方法

  3. 使用SwingUtilities.invokeLater()创建GUI

  4. 不允许Applet从外部文件写入/读取,除非签名

  5. ImageIO.write()可以将图像写入文件