1. 程式人生 > 其它 >java圖片處理,文字自動換行

java圖片處理,文字自動換行

技術標籤:影象處理影象處理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); }