1

重複の可能性:
Graphics2D を Image または BufferedImage に変換する

ごめん。これは非常に基本的な質問です。しかし、私はこのプラットフォームに非常に慣れていません。graphics2d draw 関数を使って線を引いています。これを画像としてシステムに保存したいと思います。私はそれをグーグルで検索し、クラスがこれを行うのに役立つことを発見し、BufferedImageimagedraw 関数を使用しました。

しかし、コードでそれをどのように正確に使用するかを理解できませんでした。誰でも私を助けてもらえますか?

これが私のコードです。

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();
}
}
4

2 に答える 2

1

BufferedImageまず、次のようにインスタンスを作成できます。

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

Graphics2d次に、そこからオブジェクトを取得できます。

    Graphics2D g2d = image.createGraphics();

その後、ImageIOAPI を使用して画像を保存できます。

于 2013-01-11T06:58:16.180 に答える
1
  1. JFramemainハイブリッドアプリケーションを作成しようとしない限り、アプレットで使用することは想定されていません。

  2. paint()メソッドをオーバーライドしない

  3. SwingUtilities.invokeLater()GUIの作成に使用

  4. 署名されていない限り、アプレットは外部ファイルからの書き込み/読み取りを許可されていません

  5. ImageIO.write()画像をファイルに書き込むことができます

于 2013-01-11T07:01:08.447 に答える