This may be a case where things are just inherently difficult, but I've ran into a roadblock. I'm working on a simple image to ASCII converter, and instead of writing to the console, I'd like to create a new image with the ASCII characters.
I've tried using the Graphics interface for a buffered image, but it has no native way to handle newline characters, and it seems not straightforward to handle that formatting on my own. Is there a straightforward way to do this? Here's a snippet of the unfinished method, compressBrightness() just converts from rgb vals to grayscale, and compresses down to a range of 70 vals since that's the amount of chars i have for conversion
int[] brightnessVals = CompressBrightness(image);
String pixelsAsASCII = "";
for (int i = 0; i < brightnessVals.length; i++) {
int pixelBrightness = brightnessVals[i] &0xff;
pixelsAsASCII += gradient[pixelBrightness];
if(i % image.getWidth() == 0 && i != 0){
pixelsAsASCII += "\n";
}
}
if(DEBUG){
System.out.println(pixelsAsASCII);
}
BufferedImage ASCIIImage = new BufferedImage(image.getWidth() * 8, image.getHeight() * 21, image.getType());
Graphics AASCIRenderer = ASCIIImage.getGraphics();
Font renderFont = new Font("Monospaced", Font.PLAIN,12);
AASCIRenderer.setFont(renderFont);
AASCIRenderer.setColor(Color.WHITE);
AASCIRenderer.drawString(pixelsAsASCII)