>>分享Java编程技术,对《Java面向对象编程》等书籍提供技术支持 书籍支持  卫琴直播  品书摘要  在线测试  资源下载  联系我们
发表一个新主题 开启一个新投票 回复文章 您是本文章第 29218 个阅读者 刷新本主题
 * 贴子主题:  把文字转换成图片文件的范例 回复文章 点赞(0)  收藏  
作者:sunshine    发表时间:2018-04-07 05:02:58     消息  查看  搜索  好友  邮件  复制  引用

import java.awt.Color;    
import java.awt.Font;    
import java.awt.FontMetrics;    
import java.awt.Graphics;    
import java.awt.Rectangle;    
import java.awt.image.BufferedImage;    
import java.io.File;    
    
import javax.imageio.ImageIO;    
    
public class FontImage {    
    public static void main(String[] args) throws Exception {    
        createImage("请在这里输入文字", new Font("微软雅黑", Font.PLAIN, 32), new File("d:/a.png"), 500, 64);    
    }    
    
    // 根据str,font的样式以及输出文件目录    
    public static void createImage(String str, Font font, File outFile,    
            Integer width, Integer height) throws Exception {    
        // 创建图片    
        BufferedImage image = new BufferedImage(width, height,    
                BufferedImage.TYPE_INT_BGR);    
        Graphics g = image.getGraphics();    
        g.setClip(0, 0, width, height);    
        g.setColor(Color.white);    
        g.fillRect(0, 0, width, height);// 先用黑色填充整张图片,也就是背景    
        g.setColor(Color.black);// 在换成黑色    
        g.setFont(font);// 设置画笔字体    
        /** 用于获得垂直居中y */    
        Rectangle clip = g.getClipBounds();    
        FontMetrics fm = g.getFontMetrics(font);    
        int ascent = fm.getAscent();    
        int descent = fm.getDescent();    
        int y = (clip.height - (ascent + descent)) / 2 + ascent;    
        for (int i = 0; i < 6; i++) {// 256 340 0 680    
            g.drawString(str, i * 680, y);// 画出字符串    
        }    
        g.dispose();    
        ImageIO.write(image, "png", outFile);// 输出png图片    
    }    
}  


程序猿的技术大观园:www.javathinker.net
  Java面向对象编程-->泛型
  JavaWeb开发-->JavaWeb应用入门(Ⅰ)
  JSP与Hibernate开发-->Java应用分层架构及软件模型
  Java网络编程-->客户端协议处理框架
  精通Spring-->CSS过渡和动画
  Vue3开发-->Vue Router路由管理器
  Java集合框架学习---深入探究ArrayList源码
  面试官:NIO的优化实现原理了解吗?图文结合教你如何正确避坑
  Java Optional 解决空指针异常总结
  十分钟带你搞懂 Java AQS 核心设计与实现!
  好消息:孙卫琴老师等直播分享Java分布式架构专题
  Java方法的嵌套与递归调用
  Java 冒泡排序算法
  深入研究java.lang.ThreadLocal类
  Java异常堆栈信息以字符串形式输出
  Java中的受查异常与非受查异常区别
  Java设计模式:观察者模式
  Java入门实用代码:100以内整数求和运算
  Java入门实用代码:将文件内容复制到另一个文件
  Java 入门实用代码:取最大和最小值
  java实现PPT转化为PDF
  更多...
 IPIP: 已设置保密
楼主      
1页 0条记录 当前第1
发表一个新主题 开启一个新投票 回复文章


中文版权所有: JavaThinker技术网站 Copyright 2016-2026 沪ICP备16029593号-2
荟萃Java程序员智慧的结晶,分享交流Java前沿技术。  联系我们
如有技术文章涉及侵权,请与本站管理员联系。