linux系統關於帶水印圖片無法正常瀏覽問題 g2d.drawString(

問題:項目部署在統信(uos)操作系統中,帶水印的圖片無法正常了瀏覽。
報錯信息:

java.lang.ArrayIndexOutOfBoundsException: -65010836

或者是

圖片水印中文顯示亂碼


關鍵代碼
 

BufferedImage image = ImageIO.read(fileStream);
Graphics2D g2d=image.createGraphics(); 
g2d.drawString(watermarkText, x, y);// y保證至少可以顯示一個水印的高度

// 在第三行處:g2d.drawString(watermarkText, x, y); 此行代碼報錯
//報錯信息:java.lang.ArrayIndexOutOfBoundsException: -65010836
// 和網上搜到的報錯信息不同:網上大部分爲中文亂碼

 

解決辦法

將windows系統中的字體文件複製過來
一:到 從c:/windows/Fonts 文件夾中複製  simsun.tcc       STSONG.TTF    字體文件
二: 將字體文件複製到jdk 目錄 的 jre/lib/fonts 目錄下
 三: 在 /usr/share/fonts/  目錄下新建文件夾 winFonts  再將字體文件複製到 linux系統的 /usr/share/fonts/winFont    目錄下
四: 最重要的是將字體文件複製後需要執行命令才能生效
依次執行:

sudo mkfontscale

sudo mkfontdir

sudo fc-cache –fv

最終完成,將tomcat重啓後,查看帶水印圖片,正常顯示

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章