JAVA 绘图 Linux下中文乱码、centos 安装中文字体

895 阅读2分钟

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

完美解决