Centos7下JAVA生成图片水印时字体乱码

阿里云的ES服务器,CentOS7.3 部署一个服务,内部的图片文件上传加水印之后一直出现的是乱码

如图:

Centos7下JAVA生成图片水印时字体乱码_第1张图片

在Windows下面没有任何问题,因此只有一个原因那就是水印的字体原因。

Font font = new Font("宋体", Font.BOLD, 30); /* 水印字体 */

有些服务器shag上面会没有这种字体,就会出现乱码。

于是赶紧的查询一下:fc-list

出现了这种情况,百分百确认是没有字体造成的。

解决办法

在CentOS 4.x开始用fontconfig来安装字体库,所以输入以下命令即可:

yum -y install fontconfig
Centos7下JAVA生成图片水印时字体乱码_第2张图片
当看到下图的提示信息时说明已安装成功: 

这里写图片描述
这时在/usr/shared目录就可以看到fonts和fontconfig目录了(之前是没有的): 

这里写图片描述
接下来就可以给我们的字体库中添加中文字体了。

首先在/usr/shared/fonts目录下新建一个目录chinese:

从windows下面去copy 这两个文件保存到chinese文件夹内:

Centos7下JAVA生成图片水印时字体乱码_第3张图片

Centos7下JAVA生成图片水印时字体乱码_第4张图片

紧接着需要修改chinese目录的权限:

  1. chmod -R 755 /usr/share/fonts/chinese

最后一步就是修改字体配置文件了,首先通过编辑器打开配置文件:

  1. vi /etc/fonts/fonts.conf

Centos7下JAVA生成图片水印时字体乱码_第5张图片

然后输入:wq保存退出

我们刷新一下字体的缓存:fc-cache

再输入新命令:fc-list

Centos7下JAVA生成图片水印时字体乱码_第6张图片

字体添加至Linux成功:备份一个字体的文件吧,地址:https://pan.baidu.com/s/1ET2Xh-hQrrk6fo6EPewDOQ

你可能感兴趣的:(java,Linux,系统服务运维)