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:00Running 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
