java绘制海报,使用BufferedImage,Graphics2D,drawString方法在图片上写文字,中文不显示;drawString写文字为空问题
项目场景:项目场景:公司需要制作一张海报。通过java后台制作海报,给图片拼接图片,添加水印添加文字,定义字体为“宋体”,给海报添加头像、姓名、性别、个人简介、二维码等信息。把代码部署到服务器上。问题描述:问题:定义字体为“宋体”,在本机测试正常生成图片,头像、文字、二维码正常生成。发布到公司测试服务器上,正常运行正常生成图片。但是,在发布到公司的正式生产服务器上的时候,图片和二维码正常生成了,但
·
项目场景:
项目场景:公司需要制作一张海报。通过java后台制作海报,给图片拼接图片,添加水印添加文字,定义字体为“宋体”,给海报添加头像、姓名、性别、个人简介、二维码等信息。把代码部署到服务器上。问题描述:
问题:定义字体为“宋体”,在本机测试正常生成图片,头像、文字、二维码正常生成。发布到公司测试服务器上,正常运行正常生成图片。但是,在发布到公司的正式生产服务器上的时候,图片和二维码正常生成了,但是文字没有写到图片上。原因分析:
后来经过多方测试,使用BufferedImage,Graphics2D,drawString方法在图片上写文字代码没有问题,在测试linux服务器上可以正常使用,发现只有正式服务器有问题,字体为“宋体”,所有中文都显示不出来,数字和英文可以正常显示。服务器为linux服务器,经过一天的努力测试,终于发现可能是因为linux系统中没有“宋体”这个字体。
解决方案:
把字体定义为“微软雅黑”,不再使用“宋体”。或者使用linux服务器上有的字体。我是改为了“微软雅黑”,解决问题。这个问题困了我一天,头都秃了~~~
下图为只显示字体中的数字和英文,只有中文不显示
下图为正常显示图片:
更多推荐
已为社区贡献2条内容
所有评论(0)