>>分享Java编程技术,对《Java面向对象编程》等书籍提供技术支持 书籍支持  卫琴直播  品书摘要  在线测试  资源下载  联系我们
发表一个新主题 开启一个新投票 回复文章 您是本文章第 24155 个阅读者 刷新本主题
 * 贴子主题:  把文字转换成图片文件的范例 回复文章 点赞(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开发-->JSP中使用JavaBean(Ⅱ)
  JSP与Hibernate开发-->映射对象标识符
  Java网络编程-->XML数据处理
  精通Spring-->Vue组件开发基础
  Vue3开发-->Vue指令
  Java泛型中的通配符 T,E,K,V,? 你了解吗
  内部类的编程练习题
  Java并发编程之验证volatile不能保证原子性
  Java读取大文件的高效率实现_java大文件
  Eclipse使用指南:创建Java项目的步骤
  redis持久化问题处理
  java 支持分词的高性能拼音转换工具,速度是 pinyin4j 的两倍
  Java虚拟机(JVM)的内存结构
  Java入门实用代码:死锁及解决方法
  Java入门实用代码:获取当前线程名称
  Java入门实用代码: 集合中添加元素
  Java入门实用代码:数组元素的反转
  Java入门实用代码:字符串优化测试
  Java入门实用代码:查找字符串最后一次出现的位置
  中国有多少程序员?现在还值得学java吗?
  更多...
 IPIP: 已设置保密
楼主      
1页 0条记录 当前第1
发表一个新主题 开启一个新投票 回复文章


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