Graphics.DrawString 方法
生活随笔
收集整理的這篇文章主要介紹了
Graphics.DrawString 方法
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
此 Graphics2D 類擴展 Graphics 類,以提供對幾何形狀、坐標轉換、顏色管理和文本布局更為復雜的控制。它是用于在 Java(tm) 平臺上呈現二維形狀、文本和圖像的基礎類。
一、在圖片上繪制文字
實例代碼:
package com.test.testImage;import java.awt.Color; import java.awt.Font; import java.awt.FontMetrics; import java.awt.Graphics2D; import java.awt.RenderingHints; import java.awt.image.BufferedImage; import java.io.File;import javax.imageio.ImageIO;public class Graphics2DTest {public static void main(String[] args) { try { String text = "文字居中";int width = 500; int height = 400; // 創建BufferedImage對象 BufferedImage image = new BufferedImage(width, height,BufferedImage.TYPE_INT_RGB); // 獲取Graphics2D Graphics2D g2d = image.createGraphics(); // 畫圖 g2d.setBackground(new Color(255,255,255)); //g2d.setPaint(new Color(0,0,0)); g2d.setColor(Color.red);g2d.clearRect(0, 0, width, height); Font font=new Font("宋體",Font.PLAIN,64); g2d.setFont(font); // 抗鋸齒g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);// 計算文字長度,計算居中的x點坐標 ,即字符串左邊位置FontMetrics fm = g2d.getFontMetrics(font);int textWidth = fm.stringWidth(text);int textHeight = fm.getHeight();int widthX = (width - textWidth) / 2;// 表示這段文字在圖片上的位置(x,y) .第一個是你設置的內容。 // y坐標位置為:指字體所在矩形的左上角y坐標+ascent(基線-升部線的距離)//原本字體基線位置對準畫布的y坐標導致字體偏上ascent距離,加上ascent后下移剛好頂邊吻合// int y = (height-textHeight )/2+fm.getAscent();g2d.drawString(text,widthX,100); //本內容根據實際情況,固定在具體高度位置// 釋放對象 g2d.dispose(); // 保存文件 ImageIO.write(image, "jpg", new File("D:/test.jpg")); } catch(Exception ex) { ex.printStackTrace(); } } }二、解決服務器部署圖片文字亂碼問題
在Windows系統上,文字顯示正常,當項目部署到Linux系統上時,中文全部變成了口口口這種方框。我們使用的文字是Font font=new Font(“宋體”,Font.PLAIN,64);。出現的原因是因為在Linux上沒有中文宋體或者沒有中文其他文字的字體庫,需要我們導入。?
(1)查找Windows系統(本地)的文字包
查找路勁C:\Windows\Fonts?
本地是一個ttc文件,我們需要修改文件后綴,改為ttf。?
(2)將ttf文件導入到linux系統java的fonts包中。?
注:路徑是你Linux系統java安裝的文件,根據你的安裝目錄查詢
(3)重啟java或者tomcat生效
API :??
https://www.oschina.net/uploads/doc/javase-6-doc-api-zh_CN/java/awt/Graphics2D.html
總結
以上是生活随笔為你收集整理的Graphics.DrawString 方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Oracle视图(View)------
- 下一篇: 认识pug模板引擎