1

Java で BufferedImage に文字列を描画する必要があります。これがどのように行われるかは問題ではありませんが、画像は以下の例のように必要なスペースだけを占有する必要があります。文字列のみを含む新しい BufferedImage を作成する必要があります。文字列の上と文字列の右側に余分なスペースを入れることはできますが、描画された文字列の下と左側に余分なスペースを入れることはできません。

画像

このようなことは可能ですか?私は自分でそれをやろうとしましたが、いつも私が望んでいない余分なスペースができてしまいます。どんな助けでも大歓迎です。

4

2 に答える 2

2

メソッドを使用できますGraphics2D#drawString

import java.awt.Container;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.RenderingHints;

import javax.swing.JComponent;
import javax.swing.JFrame;

public class MainClass{
  public static void main(String[] args) {
    JFrame jf = new JFrame("Demo");
    Container cp = jf.getContentPane();
    MyCanvas tl = new MyCanvas();
    cp.add(tl);
    jf.setSize(300, 200);
    jf.setVisible(true);
  }
}

class MyCanvas extends JComponent {
  public void paint(Graphics g) {
    Graphics2D g2 = (Graphics2D)g;
    g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
        RenderingHints.VALUE_ANTIALIAS_ON);
    Font font = new Font("Serif", Font.PLAIN, 96);
    g2.setFont(font);

    g2.drawString("Test string", 40, 120); 
  }
}
于 2013-06-24T22:15:50.393 に答える
-2

Java で画像に文字列を描画する必要があります。私は自分でやろうとしましたが、いつも余分なスペースができてしまいます

String のイメージを作成しようとしているのか、既存のイメージにテキストを追加しようとしているのかわかりません。あなたは余分なスペースがあると言っているので、テキストの画像を作成しようとしていて、描画している BufferedImage の大きさがわからないと思います。

必要なテキストで JLabel を作成します。次に、Screen Imageクラスを使用して、ラベル コンポーネントのイメージを作成できます。画像は、テキストの正確なサイズになります。

于 2013-06-24T22:16:14.723 に答える