java使用Graphics2D给图片上写字

java使用Graphics2D给图片上写字,第1张

你的电脑系统上要有那个字体,java才可以设置。

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 和 Graphics2D

BufferedImage 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()

就这样图片添加了文字


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11946306.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存