zoukankan      html  css  js  c++  java
  • 使用Java代码将一张图片生成为字符画

     测试的图片:

     输出的结果:

    代码:

     1 package test;
     2 
     3 import java.awt.image.BufferedImage;
     4 import java.io.File;
     5 import java.io.IOException;
     6 
     7 import javax.imageio.ImageIO;
     8 
     9 /**
    10  * 将一张图片生成为字符画
    11  * 
    12  * @author 11475
    13  *
    14  */
    15 public class DemoCase {
    16     /**
    17      * @param path 图片路径
    18      */
    19     public static void createAsciiPic(final String path) {
    20         final String base = "@#&$%*o!;.";// 字符串由复杂到简单
    21         try {
    22             final BufferedImage image = ImageIO.read(new File(path));
    23             for (int y = 0; y < image.getHeight(); y += 2) {
    24                 for (int x = 0; x < image.getWidth(); x++) {
    25                     final int pixel = image.getRGB(x, y);
    26                     final int r = (pixel & 0xff0000) >> 16, g = (pixel & 0xff00) >> 8, b = pixel & 0xff;
    27                     final float gray = 0.299f * r + 0.578f * g + 0.114f * b;
    28                     final int index = Math.round(gray * (base.length() + 1) / 255);
    29                     System.out.print(index >= base.length() ? " " : String.valueOf(base.charAt(index)));
    30                 }
    31                 System.out.println();
    32             }
    33         } catch (final IOException e) {
    34             e.printStackTrace();
    35         }
    36     }
    37 
    38     /**
    39      * 在 createAsciiPic(final String path)添加图片的路径
    40      */
    41     public static void main(final String[] args) {
    42         DemoCase.createAsciiPic("C:\Users\11475\Desktop\resizeApi (2).png");
    43     }
    44 }
  • 相关阅读:
    get请求中文乱码问题
    JDBC
    SpringSecurity
    IDEA中创建项目
    Vue路由传参的几种方式
    vue-cli搭建与使用
    docker发布springboot项目
    css伪类的使用
    java实体类序列化与反序列化
    docker网络
  • 原文地址:https://www.cnblogs.com/greamrod/p/10401183.html
Copyright © 2011-2022 走看看