对不起。这是一个非常基本的问题。但我对这个平台很新。我正在使用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();
}
}
答案 0 :(得分:1)
首先,您可以创建一个BufferedImage
实例,如下所示:
private BufferedImage image = new BufferedImage(600, 800, BufferedImage.TYPE_INT_RGB);
然后你可以从中获取Graphics2d
对象:
Graphics2D g2d = image.createGraphics();
然后,您可以使用ImageIO
API保存图片。
答案 1 :(得分:1)
JFrame
和main
不应在applet中使用。
请勿覆盖paint()
方法
使用SwingUtilities.invokeLater()
创建GUI
不允许Applet从外部文件写入/读取,除非签名
ImageIO.write()
可以将图像写入文件