六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 48|回复: 0

关于字符的转换,输入一个字,让程序自动输出这个字,打字

[复制链接]

升级  61.3%

726

主题

726

主题

726

主题

探花

Rank: 6Rank: 6

积分
2226
 楼主| 发表于 2013-1-27 05:13:11 | 显示全部楼层 |阅读模式
package test;import java.awt.Color;import java.awt.Font;import java.awt.Graphics2D;import java.awt.font.TextLayout;import java.awt.geom.Rectangle2D;import java.awt.image.BufferedImage;public class ArtString {    public static String getArtStr(String str, Font font) {        if (str == null || str.trim().length() == 0) return "";        if (font == null) font = new Font("SansSerif", Font.PLAIN, 30);        BufferedImage bi = new BufferedImage(1, 1, BufferedImage.TYPE_INT_ARGB);        Graphics2D gd = bi.createGraphics();        TextLayout tl = new TextLayout(str, font, gd.getFontRenderContext());        Rectangle2D rect = tl.getBounds();        int width = (int) Math.ceil(rect.getWidth()) + 3;        int height = (int) Math.ceil(rect.getHeight());        gd.dispose();        bi = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB);        gd = bi.createGraphics();        gd.setFont(font);        gd.setBackground(Color.WHITE);        gd.setColor(Color.WHITE);        gd.fillRect(0, 0, width, height);        gd.setColor(Color.BLACK);        tl.draw(gd, 0f, (float) -rect.getY());        bi.flush();        gd.dispose();        gd = null;        int[] rgbs = bi.getRGB(0, 0, width, height, null, 0, width);        bi = null;        StringBuilder sb = new StringBuilder(rgbs.length);        final int INTB = Color.BLACK.getRGB();        final int INTW = Color.WHITE.getRGB();        for (int i = 0, c = 0; i < rgbs.length;) {            c = rgbs[i++];            if (c == INTB) {                sb.append("小");            } else if (c == INTW) {                sb.append(' ');            }            if (i % width == 0) sb.append('\n');        }        return sb.toString();    }    public static void main(String[] args) {//        System.out.print(getArtStr("SageZk", null));        System.out.print(getArtStr("点", null));    }} 
黑色头发  http://heisetoufa.iteye.com
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表