GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment ()
String [] fontList = ge.getAvailableFontFamilyNames ()
用这个看看你电脑上的字体吧。
先用java.awt.Graphics2D.getFont()取得当前正在使用的字体f,java.awt.Graphics2D.getFontRenderContext()取得当前正在使用的渲染上下文frc然后再用Rectangle2D rect=f.getStringBounds(str,frc)就可以得到你渲染这些文字所占据的矩形,使用rect.getWidth(), rect,getHeight()就可以知道这个矩形的大小了。
反过来通过像素大小决定字符串的长度没有现成的方法。如果你的字体是等宽的可以先用上面的方法求出一个字符的大小然后自己算,不然就只能先试试一个字符,再试试两个字符……直到超过你要的长度就返回的办法了(看起来效率比较低,不过实际使用的时候不是很影响性能)
使用 BufferedImage 和 Graphics2DBufferedImage source = ImageIO.read(...)
BufferedImage target = new BufferedImage(source.getWidth(),source.getHeight(), source.getType())
Graphics2D g2d = target.createGraphics()
g2d.drawImage(source, 0, 0, null)
g2d.setPaint(Color.BLACK)
g2d.drawString( "Hello", 50,50)
g2d.dispose()
就这样图片添加了文字
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)