CentOs服务器下,Java 使用Graphics2D向图片中合成文字,显示小方框。
//背景图
File bgImageFile = new File(bgImageName);
BufferedImage big = ImageIO.read(bgImageFile);
//合成的图片
Graphics2D graphics = big.createGraphics();
// 设置字体为黑色
graphics.setPaint(Color.BLACK);
// 画笔粗细
graphics.setStroke(new BasicStroke(1f));
// 消除文字锯齿
graphics.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON);
// 消除图片锯齿
graphics.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
//创建字体
Font font = new Font("宋体", Font.PLAIN, 38);
//设置字体
graphics.setFont(font);
// 表示这段文字在图片上的位置(x,y) .第一个是你设置的内容。
graphics.drawString(userName, widthX / 2, 820);
效果图:
显示方框是没有字体库,不是编码问题,显示???是编码问题,那么就是 centos 缺少了字体库,安装一下
第一步 安装字体库
yum install fontconfig
已加载插件:fastestmirror
...
Running transaction
正在安装 : libfontenc-1.1.3-3.el7.x86_64 1/2
正在安装 : 1:xorg-x11-font-utils-7.5-21.el7.x86_64 2/2
验证中 : libfontenc-1.1.3-3.el7.x86_64 1/2
验证中 : 1:xorg-x11-font-utils-7.5-21.el7.x86_64 2/2
已安装:
xorg-x11-font-utils.x86_64 1:7.5-21.el7
作为依赖被安装:
libfontenc.x86_64 0:1.1.3-3.el7
完毕!
第二步 安装更新字体命令
yum install mkfontscale
[root@service-1 ~]# yum install mkfontscale
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
正在解决依赖关系
--> 正在检查事务
---> 软件包 xorg-x11-font-utils.x86_64.1.7.5-21.el7 将被 安装
--> 正在处理依赖关系 libfontenc.so.1()(64bit),它被软件包 1:xorg-x11-font-utils-7.5-21.el7.x86_64 需要
--> 正在检查事务
---> 软件包 libfontenc.x86_64.0.1.1.3-3.el7 将被 安装
--> 解决依赖关系完成
依赖关系解决
========================================================================================================================================================
Package 架构 版本 源 大小
========================================================================================================================================================
正在安装:
xorg-x11-font-utils x86_64 1:7.5-21.el7 base 104 k
为依赖而安装:
libfontenc x86_64 1.1.3-3.el7 base 31 k
事务概要
========================================================================================================================================================
安装 1 软件包 (+1 依赖软件包)
总下载量:135 k
安装大小:408 k
Is this ok [y/d/N]: y
Downloading packages:
(1/2): xorg-x11-font-utils-7.5-21.el7.x86_64.rpm | 104 kB 00:00:00
(2/2): libfontenc-1.1.3-3.el7.x86_64.rpm | 31 kB 00:00:00
--------------------------------------------------------------------------------------------------------------------------------------------------------
总计 1.5 MB/s | 135 kB 00:00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
正在安装 : libfontenc-1.1.3-3.el7.x86_64 1/2
正在安装 : 1:xorg-x11-font-utils-7.5-21.el7.x86_64 2/2
验证中 : libfontenc-1.1.3-3.el7.x86_64 1/2
验证中 : 1:xorg-x11-font-utils-7.5-21.el7.x86_64 2/2
已安装:
xorg-x11-font-utils.x86_64 1:7.5-21.el7
作为依赖被安装:
libfontenc.x86_64 0:1.1.3-3.el7
完毕!
第三步 查看中文字体
fc-list :lang=zh
发现是没有的,所以需要上传中文字体库
创建文字体库的目录
mkdir /usr/share/fonts/chinese
cd /usr/share/fonts/chinese
设置这个目录的访问权限
chmod -R 755 /usr/share/fonts/chinese
然后使用 ftp上传字体库 点击这里查看中文字体库
第四步 关联使用上传的字体库
cd /usr/share/fonts/chinese
mkfontscale
mkfontdir
fc-cache
再次查看是否安装成功
[root@service-1 chinese]# fc-list :lang=zh
/usr/share/fonts/chinese/SIMSUN.TTC: 宋体,SimSun:style=常规,Regular
/usr/share/fonts/chinese/DENGL.TTF: DengXian,DengXian Light:style=Light,Regular
/usr/share/fonts/chinese/DENG.TTF: DengXian:style=Regular
/usr/share/fonts/chinese/DENGB.TTF: DengXian:style=Bold
/usr/share/fonts/chinese/SIMSUN.TTC: 新宋体,NSimSun:style=常规,Regular
/usr/share/fonts/chinese/SIMKAI.TTF: KaiTi:style=Regular,Normaali
/usr/share/fonts/chinese/SIMHEI.TTF: SimHei:style=Normal
/usr/share/fonts/chinese/SIMFANG.TTF: FangSong:style=Regular,Normaali
完美解决