日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Graphics.DrawString 方法

發布時間:2023/12/18 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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 方法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。