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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值