问题描述
给图片添加水印加载外部字体无效问题
1.加载外部字体代码如下:
InputStream resourceAsStream = ImageDemo.class.getResourceAsStream("/WEB-INF/font/YeZiGongChangZuiHanJiangXingCao-2.ttf");
Font font = Font.createFont(Font.TRUETYPE_FONT, Objects.requireNonNull(resourceAsStream));
注意:一定先编译项目,编译完后classes中存在字体,否则会报空指针异常,类加载器加载不到文件;
2.字体加载到了,但图片添加的水印仍然无效,如
我也没有找出什么原因,有知道的求告知!!!
3.换种思路,先将字体加载到系统里,然后再调用字体
static {
Font font = null;
try {
font = Font.createFont(Font.TRUETYPE_FONT, new File("D:\\1FileTest\\font\\YeZiGongChangZuiHanJiangXingCao-2.ttf"));
} catch (Exception e) {
e.printStackTrace();
}
GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
ge.registerFont(font);
}
直接调用
// InputStream resourceAsStream = ImageDemo.class.getResourceAsStream("/WEB-INF/font/YeZiGongChangZuiHanJiangXingCao-2.ttf");
// Font font = Font.createFont(Font.TRUETYPE_FONT, Objects.requireNonNull(resourceAsStream));
//也字工厂醉寒江行草 标准 为字体名
Font font = new Font("也字工厂醉寒江行草 标准", Font.PLAIN, 28);
pen.setFont(font);
如图草书字体生效