docker镜像中,g.drawString字体无法显示的问题解决

当时遇到的问题如下:
1.直接报Null Pointer:FontConfiguaration.getVersion(),
解决方案:原来是镜像中使用的jdk为apline:8,换版本jdk后图像可正常显示 (ringcentral/jdk:latest)

2.更换jdk以后,不报空指针了,但字体为方框无法显示出来,此时引入PingFang_Bold.ttf字体,之前直接放到服务器上还是无法显示,原来要放到镜像中,在Dockfile中,拷贝该字体到镜像的字体文件夹中即可(PingFang_Bold.ttf字体和Dockerfile文件同一个目录下):
COPY PingFang_Bold.ttf /usr/share/fonts/PingFang_Bold.ttf

到此,问题解决!!

引入字体代码:
private Font loadFont(int style, int fontSize) {
try {
File file = ResourceUtils.getFile(“/usr/share/fonts/PingFang_Bold.ttf”);
FileInputStream fis = new FileInputStream(file);
Font dynamicFont = Font.createFont(Font.TRUETYPE_FONT, fis);
Font PingFangBold = dynamicFont.deriveFont(style, fontSize);
fis.close();

        return PingFangBold;

    } catch (Exception e) {
        log.info("【PingFang字体引入失败】{}", e);
        return new Font(“没引入成功的默认返回字体”, style, fontSize);
    }
}

–》 画的时候直接使用即可:
Font font = loadFont(Font.PLAIN, 18);
g.setFont(font );
g.drawString("****", x, y);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值