栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

[Bug 定位] 使用 Graphics2D 绘制图片时中文乱码问题的解决

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

[Bug 定位] 使用 Graphics2D 绘制图片时中文乱码问题的解决

需求:图片上渲染上文字,到测试有中文乱码,原因是 Linux 系统缺少字体库

涉及到的类
java.awt.Font 、 java.awt.Graphics2D

    public void add(Graphics2D g, BufferedImage bimage, Map map) {
        String markContent = (String) map.get("text");
        g.setColor((Color) map.get("color"));
        g.setBackground(Color.white);

        AttributedString ats = new AttributedString(markContent);
        Font f = new Font((String) map.get("fontType"), (Integer) map.get("style"),
                (Integer) map.get("fontSize"));
        ats.addAttribute(TextAttribute.FONT, f, 0, markContent.length());
        AttributedCharacterIterator iter = ats.getIterator();

        // 添加水印的文字和设置水印文字出现的内容
        g.drawString(iter, (Integer) map.get("x"), (Integer) map.get("y"));
    }

解决办法:
在 C:WindowsFonts 文件夹下找到使用的字体,复制出来后缀改成 .ttc, 复制到

/usr/share/fonts/dejavu/


之后重启服务即可。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/351797.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号