java图片处理,文字自动换行

BufferedImage - Graphics2D 图片处理 文字居中换行util

/***
 *
 * @param g Graphics2D
 * @param font Font
 * @param text 文本内容
 * @param x    起始点X轴坐标
 * @param y    起始点Y轴坐标
 * @param maxWidth  文字最大长度
 */
public static void content(Graphics2D g , Font font , String text , int x , int y , int maxWidth) {
    FontMetrics fontMetrics = g.getFontMetrics(font);
    int textWidth = fontMetrics.stringWidth(text);
    int X = (maxWidth - textWidth) / 2;
    g.drawString(text,x+X,y);
}

BufferedImage - Graphics2D 图片处理 文字自动换行util

/***
*
* @param g Graphics2D
* @param font Font
* @param text 文本内容
* @param x    起始点X轴坐标
* @param y    起始点Y轴坐标
* @param maxWidth  文字最大长度
*/
public static void drawString(Graphics2D g , Font font , String text , int x , int y , int maxWidth) {
    JLabel label = new JLabel(text);
     label.setFont(font);
     FontMetrics metrics = label.getFontMetrics(label.getFont());
     int textH = metrics.getHeight();
     int textW = metrics.stringWidth(label.getText()); //字符串的宽
     String tempText = text;
     while(textW > maxWidth) {
         int n = textW / maxWidth;
         int subPos = tempText.length() / n;
         String drawText = tempText.substring(0 , subPos);
         int subTxtW = metrics.stringWidth(drawText);
         while(subTxtW > maxWidth) {
             subPos--;
             drawText = tempText.substring(0 , subPos);
             subTxtW = metrics.stringWidth(drawText);
         }
         g.drawString(drawText , x , y);
         y += textH;
         textW = textW - subTxtW;
         tempText = tempText.substring(subPos);
     }

     g.drawString(tempText , x , y);
 }
  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值