0

誰かが私の構文をここで確認できますか?「TimesNewRoman」、「Arial」、「Verdana」をにfontName渡し、8、12、15などを使用していfontSizeます。ここでフォントが変更されることはありません。画像の上にテキストを書き込むためにこれを行っています。

Graphics2D g2d = (Graphics2D) bufferedImage.getGraphics();
g2d.drawImage(photo, 0, 0, null);
g2d.setColor(Color.white);
Font font = new Font(fontName, Font.PLAIN, fontSize);
g2d.setFont(font);
g2d.drawString(text,x,y);
4

2 に答える 2

2

私はついに私のリストのフォントがシステムに存在しないことを知りました。そのため、getAllFonts()メソッドを使用して、リストからそれらのフォントのみを渡す必要がありました。

于 2011-03-30T20:19:44.893 に答える
0

あなたはこれをするべきです

BufferedImage img = new BufferedImage(
    w, h, BufferedImage.TYPE_INT_ARGB);
Graphics2D g2d = img.createGraphics();
g2d.drawImage(photo, 0, 0, null);
g2d.setPaint(Color.red);
//example :     g2d.setFont(new Font("Serif", Font.BOLD, 15));
g2d.setFont(new Font(fontName, Font.BOLD, size));
String s = "Hello, world!";
// assuming x & y is set using graphic's font metrics
g2d.drawString(s, x, y);
g2d.dispose();

太陽のドキュメントからの抜粋

getGraphics

public Graphics getGraphics()このメソッドはGraphics2Dを返しますが、下位互換性のためにここにあります。createGraphicsは、Graphics2Dを返すように宣言されているため、より便利です。

getGraphicsこれは、 APIを使用すべきではないという意味ではありません。上記のコードが私のために働いたことだけです:)

于 2011-03-30T19:46:16.037 に答える