项目场景:

项目场景:公司需要制作一张海报。通过java后台制作海报,给图片拼接图片,添加水印添加文字,定义字体为“宋体”,给海报添加头像、姓名、性别、个人简介、二维码等信息。把代码部署到服务器上。

问题描述:

问题:定义字体为“宋体”,在本机测试正常生成图片,头像、文字、二维码正常生成。发布到公司测试服务器上,正常运行正常生成图片。但是,在发布到公司的正式生产服务器上的时候,图片和二维码正常生成了,但是文字没有写到图片上。

原因分析:

后来经过多方测试,使用BufferedImage,Graphics2D,drawString方法在图片上写文字代码没有问题,在测试linux服务器上可以正常使用,发现只有正式服务器有问题,字体为“宋体”,所有中文都显示不出来,数字和英文可以正常显示。服务器为linux服务器,经过一天的努力测试,终于发现可能是因为linux系统中没有“宋体”这个字体。


解决方案:

把字体定义为“微软雅黑”,不再使用“宋体”。或者使用linux服务器上有的字体。我是改为了“微软雅黑”,解决问题。这个问题困了我一天,头都秃了~~~
下图为只显示字体中的数字和英文,只有中文不显示
在这里插入图片描述

下图为正常显示图片:
在这里插入图片描述

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐