图片转化成字符图片

之前在网上看到一些字符图,感觉很有意思,就想着自己写一个。

然而·打印出来后,由于电脑分辨率等原因,而字符串过多,一直没法很好的预览。

加上网上没有比较好的字符串转图片的工具。就只好查资料自己写一个。

将图片转化成字符图片源码

    public static void main(String[] args) throws IOException {

        String[] strings = new String[]{"▏","▎","▍","▋","▊","▉"};
        int i1 = ((256*256+256)*256+256+strings.length) / strings.length;
        //需要添加的图片
        ImageIcon imgIcon = new ImageIcon("D:\\2.jpg");
        BufferedImage img=new BufferedImage(imgIcon.getIconWidth() ,imgIcon.getIconHeight(),BufferedImage.TYPE_INT_RGB);

        Graphics2D gs=(Graphics2D)img.getGraphics();
        gs.drawImage(imgIcon.getImage(), 0, 0, imgIcon.getImageObserver());
        int width = img.getWidth();
        int height = img.getHeight();
        StringBuilder builder = new StringBuilder();
        for (int i=0;i> 16;
                int G = (rgb & 0xff00) >> 8;
                int B = (rgb & 0xff);
                rgb=((R*256)+G)*256+B;
                builder.append(strings[strings.length - 1- rgb/i1]);
            }
        }
//        System.out.println(builder.substring(1));
        //生成文件的路径
        String filePath = "D:\\XX22.jpg";
        File outFile = new File(filePath);
        // 创建图片
        BufferedImage image = new BufferedImage(width*3, height*3,
                BufferedImage.TYPE_INT_BGR);
        Graphics g = image.getGraphics();
        g.setClip(0, 0, width*3, height*3);
        g.setColor(Color.white); // 背景色白色
        g.fillRect(0, 0, width*3, height*3);
        g.setColor(Color.black);//  字体颜色黑色
        g.setFont(new Font("宋体", Font.PLAIN, 6));// 设置画笔字体
        String[] split = builder.substring(1).split("\n");
//        g.drawString(split[0], 0, 50);
        for (int i = 0; i < split.length; i++) {
            System.out.println(split[i]);
            g.drawString(split[i], 0, i*6);
        }
        g.dispose();
        ImageIO.write(image, "jpg", outFile);
    }

你可能感兴趣的:(随手写的,字符串,java)