
然后再用Rectangle2D rect=f.getStringBounds(str,frc)就可以得到你渲染这些文字所占据的矩形,使用rect.getWidth(), rect,getHeight()就可以知道这个矩形的大小了。
反过来通过像素大小决定字符串的长度没有现成的方法。如果你的字体是等宽的可以先用上面的方法求出一个字符的大小然后自己算,不然就只能先试试一个字符,再试试两个字符……直到超过你要的长度就返回的办法了(看起来效率比较低,不过实际使用的时候不是很影响性能)
图片上的文字是没法读取的,以为这涉及到图像处理。非常非常复杂!因为如果你非要读取图片上的文字,不是几行代码可以搞定的,首相从matlaB开始学,了解什么是图像处理。然后再开发相应的jar包。当然,你也可以使用相关的软件工具,比如识图软件,通过读取软件的反馈也算是读取了图片上的文字import java.awt.Colorimport java.awt.Frame
import java.awt.Graphics
public class DrawString extends Frame{
private static final int spacing = 20 //文字与图片边界的空白
private static final int wordNum = 7 //文字字号
private Color strColor
private StringBuffer message
private int pictureWidth
private int pictureHight
public void paint(Graphics g){
Color c = g.getColor()
g.setColor(strColor)
StringBuffer msg = message
int strNumPerLine = (pictureWidth - spacing) / wordNum
int strLineNum = message.length() / strNumPerLine
for(int l=strLineNum,n=0 l<0l--){
msg.substring(n, strNumPerLine)
g.drawString(msg.toString(), wordNum, wordNum * strNumPerLine)
n = strNumPerLine
}
g.setColor(c)
//this.draw(g)
}
public DrawString(Color strColor, StringBuffer message, int pictureWidth, int pictureHight) {
this.strColor = strColor
this.message = message
this.pictureWidth = pictureWidth
this.pictureHight = pictureHight
}
}
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)