使用java 生成图片,在图片上打的文字水印显示为一个方框,这种情况的原因,一般是liunx系统或者docker容器内,没有你在打文字水印时选择的字体
解决办法,先找一个免费的字体,比如 Alibaba-PuHuiTi-Regular.otf
然后使用字体
File newFileT = new File("Alibaba-PuHuiTi-Regular.otf");
if (!newFileT.exists()) {
InputStream streamT = getClass().getClassLoader().getResourceAsStream("font/Alibaba-PuHuiTi-Regular.otf");
FileUtils.copyInputStreamToFile(streamT, newFileT);
}
//字体
Font font = Font.createFont(Font.TRUETYPE_FONT, newFileT);
Font f = font.deriveFont(Font.PLAIN,20);
ImgUtil.pressText(outputfile,outputfile,name,Color.black,f,-170+(name.length() * 10),0,0.8f);