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重启后,查看带水印图片,正常显示

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