2017-11-27 26 views
-2

ASCII Art의 효과를 얻으려고하고 있지만 작동하지 않습니다. 이 코드는 문자 "VG"에서 "비주얼 문법"을 생성하기로되어 있습니다. 오류가없고 출력이 표시되지만 몇 줄의 문자로 구성됩니다. 그것은 어떤 이미지도 창조하지 못합니다.ASCII Art - 코드가 작동하지 않습니다.

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); 

    } 
} 
} 
+0

improvemnet에 대한 몇 가지 아이디어는 [ASCII 아트 변환에 대한 이미지] (https://stackoverflow.com/a/32987834/2521214)를 참조하십시오. – Spektre

답변

0

지금은 V 자만 출력하지만 G 자만 출력하지 않습니다.

그래서이 훨씬 더 유용처럼 보이는이

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

이 줄

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

을 변경, 그것은 "VISUAL GR"와 "A"의 절반 것 같습니다. 너비가 더 필요합니다. 250은 나에게 좋은 것처럼 보입니다. int width = 250;

+0

정말 고마워요! – Natiaia