2

我有一个奇怪的问题 - 我试图在透明的 GIF 图片上写一个文本字符串。我正在使用 awt Graphics2D 对象,出于某种原因,我无法影响文本的外观——它的颜色、对齐方式等等。每次我将 drawString 与字符串一起使用时,它都是白色且居中的。这是我的jre的问题吗?用GIF格式?或者图片是透明的事实?

我试过这样做:(TextAttributes 只是我创建的一些容器类)

Map<TextAttribute, Object> fontAtts = new Hashtable<TextAttribute, Object>();

fontAtts.put(TextAttribute.RUN_DIRECTION, TextAttribute.RUN_DIRECTION_RTL);
fontAtts.put(TextAttribute.FAMILY, TextAttributes.type);
fontAtts.put(TextAttribute.FOREGROUND, TextAttributes.color);
fontAtts.put(TextAttribute.SIZE, TextAttributes.size);

Font font = new Font(fontAtts);
BufferedImage image = getImage(picturePath, pictureName, format);\\just gives me the buffered image
Graphics2D g2 = image.createGraphics();

//first way:    
g2.setFont(font);
g2.drawString("bla blah", 200,150)

//second way
g2.setPaint(TextAttributes.color);
g2.drawString("bla blah", 200,150)

//third way
g2.setColor(Color.RED);
g2.drawString("bla blah", 200,150)

//fourth way
AttributedString x = new AttributedString("blah blah", fontAtts);
g2.drawString(x.getIterator(),200,150)

但没有任何效果:(

4

0 回答 0