前言提要
首先要吐槽一下,是这两天遇到的需求,这种要后台来画图的需求可以说是很少了,也很恶心讨厌。我又没有前端美工的美感,还要我把那么多元素搞那么多代码去生成一张图片给前端。
遇到的问题
因为这个系统的其他图片文件都是交由阿里云oss管理,所以我是直接把base64的图片返回给前端,没有另外找磁盘空间放图片(直接返回图片URL是比较友好的方式)。但是在window环境下正常运行的情况下,把代码上传到linux服务器,生成的图片中出现的中文乱码的情况。
解决方法
经过一番搜索和测试,以下一个方法我觉得比较可靠。
出现这个问题的原因就是linux环境下没有中文字体,这种不同于以往的中文乱码。
平常的中文乱码的由于传输过程中的编码问题导致的,而这种情况的直接在运行环境下调用系统字体来画在图片上,所以是没有找到相应字体导致的。
// 设置画笔字体
g.setFont(new Font(