問題:項目部署在統信(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重啓後,查看帶水印圖片,正常顯示