解决Linux图片加水印(Graphics2D)出现方框的问题

在从Windows切换到Linux服务器后,发现使用Graphics2D添加文字水印时出现乱码。问题源于Linux缺少中文字体。通过拷贝Windows的字体文件到Linux的/usr/share/fonts目录下,并执行mkfontscale、mkfontdir、fc-cache-fv等命令安装字体,最终成功解决了乱码问题。现在可以正常显示中文水印。

最近在调试的时候,发现打印出来的图片中,文字水印本来应该是中文名的地方,结果出现了三个方框。初步怀疑是再给图片加水印的时候乱码了(原本服务器是Windows的,后面换成Linux)。经过排查,发现代码中有调用Graphics2D加水印的方法。网络上借鉴了一下前辈的经验,发现是Linux上没有安装中文字体。随后在Linux系统中安装中文字体,问题得以解决。

下面列出Linux下安装中文字体的详细步骤。

  1. 拷贝本地Windows系统的字体
    Windows下字体的存放位置为C:\Windows\Fonts,里面有很多字体。网上推荐选择自己喜欢的字体进行安装,我选择更为简单粗暴的方式,直接拷贝整个文件夹,打算把所有字体都安装上去。拷贝出来之后,发现也就几百兆,就这么干了。
    字体文件夹拷贝出来之后,重命名为WinFronts,直接拷贝出来的文件夹应该是没有相关权限的。我也就没有去给文件夹设置权限什么的,直接通过WinS C P将文件加移动到目标Linux服务器上。将WinFronts文件夹复制到目标Linux服务器/usr/share/fonts下。
    2.执行命令,安装字体
    下面就是执行一系列的命令安装字体即可。
    a: 去向字体文件目录,命令:cd /usr/share/fonts/WinFonts
    b: 执行:mkfontscale ,(如果提示 mkfontscale: command not found,要自己安装,安装命令: yum install mkfontscale,提示安装内容是否正确的话,敲Y,回车就好),安装完成要重新执行:mkfontscale
    c: 执行:mkfontdir
    d: 执行:fc-cache -fv (如果提示 fc-cache: command not found,要自己安装,安装命令: yum install fontconfig ,提示安装内容是否正确的话,敲Y,回车就好),安装完成要重新执行:fc-cache -fv
    e.可以用:fc-list :lang=zh 命令,查看安装的中文字体,fc-list 命令查看linux的所有字体。

原文链接:https://my.oschina.net/u/3081344/blog/3142241

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值