ASCII艺术 - 代码无法正常工作

时间:2017-11-27 11:50:54

标签: java graphics ascii graphics2d

我试图达到ASCII艺术的效果,但它无法正常工作。该代码应该创建" Visual Grammar"在字母" VG"。似乎没有错误并且显示输出,但它只包含几行字母。它没有创建任何图像。知道可能出了什么问题吗?

package visualgrammar;

import java.awt.Font;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.RenderingHints;
import java.awt.image.BufferedImage;

public class Vg {

public static void main(String[] args) {
    int width = 150;
    int height = 30;

    BufferedImage image = new BufferedImage(width,height, BufferedImage.TYPE_INT_RGB);
    Graphics a = image.getGraphics();
    a.setFont(new Font("SansSerif", Font.BOLD, 24));

    Graphics2D a2 = (Graphics2D) a;
    a2.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON);
    a2.drawString("VISUAL GRAMMAR", 10, 20);

    for (int y = 0; y < height; y++) {
        StringBuilder builder = new StringBuilder();

        for (int x = 0; x < width; x++) {
        builder.append(image.getRGB(x, y) == -16777216 ? "" : "V"); 
}

        System.out.println(builder);

    }
}
}

1 个答案:

答案 0 :(得分:0)

现在,您只输出V字符,但不输出G字符。

所以改变这一行

const HitSlopHelperComponent = ({
  children: React.Node,
  width: String,
  height: String,
  onMouseEnter?: Function,
  onMouseLeave?: Function}) => ()

到这个

builder.append(image.getRGB(x, y) == -16777216 ? "" : "V");

这看起来更像是有用的,它看起来像&#34; VISUAL GR&#34; &#34; A&#34;。 所以你需要更多的宽度。 250看起来对我有点好。 builder.append(image.getRGB(x, y) == -16777216 ? "G" : "V");