ImageIo外部字体导入

简介: ImageIo外部字体导入

 使用反射获取外部字体即可

public static void main(String[] args) throws IOException {
        //画板
        BufferedImage i = new BufferedImage(400, 400, 2);
        //画笔
        var m = i.createGraphics();
        //平滑度
        m.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_GASP);
        m.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
        m.setRenderingHint(RenderingHints.KEY_STROKE_CONTROL, RenderingHints.VALUE_STROKE_DEFAULT);
        m.setColor(Color.YELLOW);
        m.fillRect(0, 0, 400, 400);
        String s = "Hello world 版权所有,陈卸甲!";
        Font font = new Font("Aa狂派手书", Font.BOLD, 20);
        //反射机制获取外部字体
        var is = Imges5.class.getClassLoader().getResourceAsStream("font/f1.ttf");
        try {
            font = createFont(Font.TRUETYPE_FONT, is);
        } catch (FontFormatException e) {
            e.printStackTrace();
        }
        //获取外部字体方式2
//        var is2 = Thread.currentThread().getContextClassLoader().getResourceAsStream("font/f1.ttf");
//        try {
//            font=Font.createFont(0,is2);
//        } catch (FontFormatException e) {
//            e.printStackTrace();
//        }
        System.out.println(font.getName());
        var fm = m.getFontMetrics(font);
        m.setColor(Color.red);
        font = font.deriveFont(50f);
        m.setFont(font);
        m.drawString(s, 10, 50);
        m.dispose();
        ImageIO.write(i, "png", new File("ziti.png"));
        Runtime.getRuntime().exec("cmd /k start ziti.png");
    }

image.gif


目录
相关文章
|
Cloud Native Linux 开发工具
【云原生】一文学会Dockerfile所有常用命令
【云原生】一文学会Dockerfile所有常用命令
432 0
身份证号码的编排规则
作者:知乎用户链接:https://www.zhihu.com/question/19823489/answer/13074347来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
4917 0
|
安全 算法 Java
JVM系列之STW、并行与并发、安全点与安全区域
云栖号资讯:【点击查看更多行业资讯】在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来! 在平时实际工作中,其实接触 JVM 的机会比较少,而学习 JVM 时,大部分时候也是看书或者网上看博客教程,然而在学习过程中,经常会碰到很多陌生的名词,难以理解,尤其是在垃圾回收器中,因此本文找了几个和垃圾回收器相关知识中联系比较紧密的名词解释一下。
|
Web App开发 .NET 数据库
一起谈.NET技术,ASP.NET中如何正确使用Session
  Asp.Net中的Session要比Asp中的Session灵活和强大很多,同时也复杂很多;看到有一些Asp.Net开发人员报怨说Session不稳定,莫名其妙的丢失,其实这正是Asp.Net改进的地方之一。
1229 0
|
19天前
|
人工智能 JSON API
全网刷屏的 Jev 模型正式开放!一手实战测评 + 保姆级教程
全网爆火的 Jev 模型是什么?有什么用?怎么使用?怎么接入 AI 编程工具?效果真的好么?傻子可懂的 Jev 保姆级实战教程 + 项目实战测评来啦
8811 25
|
18天前
|
人工智能 并行计算 PyTorch
秋叶 ComfyUI 2026 整合包 v3.2 完整部署教程:Python 3.13 + Torch 2.13 全栈升级
秋叶aaaki ComfyUI 2026年8月整合包v3.2正式发布!全面升级Python 3.13.11、PyTorch 2.13.0+cu130及ComfyUI v0.30.2,原生支持MiniMax H3、Wan 2.2、Qwen-Image-2.1等2026主流音视频/图像模型,解压即用,无需环境配置。
3477 15
|
17天前
|
人工智能 测试技术 API
最近全网爆火的 Jev 到底是什么?适合干什么、怎么用,一篇讲透!
Jev是TypeSafe AI推出的“系统一模型”,不生成文本,专做毫秒级结构化决策:Choice(多选)、Score(打分)、Noul(是非概率)。响应快193倍、成本低444倍,适合工单路由、内容审核、测试定级等高频判断场景。
2204 4
最近全网爆火的 Jev 到底是什么?适合干什么、怎么用,一篇讲透!

热门文章

最新文章