vlambda博客
学习文章列表

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

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已加载插件:fastestmirrorLoading 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 kIs this ok [y/d/N]: yDownloading 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 checkRunning transaction testTransaction test succeededRunning 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
  • 1

发现是没有的,所以需要上传中文字体库
创建文字体库的目录并设置这个目录的访问权限

mkdir /usr/share/fonts/chinesecd /usr/share/fonts/chinesechmod -R 755 /usr/share/fonts/chinese

然后使用 ftp上传字体库 (回复作者获取中文字体库)

第四步 关联使用上传的字体库

cd /usr/share/fonts/chinesemkfontscalemkfontdirfc-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