Hacker News new | past | comments | ask | show | jobs | submit login
Recreating ANSI Art from a Screenshot (bert.org)
110 points by zdw on Feb 27, 2023 | hide | past | favorite | 9 comments



"my only claim to fame from that time is that I’m part of the final member list of ACiD Productions under BBS Modifications."

This is a pretty rad credential. ACiD and iCE were hugely influential in my early career and I looked up to the early and late members. Very cool.


I remember thinking those ACiD and iCE artists were godlike. The illustrations in those packs still look amazing today, even if you forget how many limitations they were operating under.


https://16colo.rs/

I'll never tire of the aesthetic of the scene.

Here's a quasi-relevant free book: https://punctumbooks.com/titles/warez-the-infrastructure-and...


Indeed. When all I knew was text mode I envied graphics, but the reality was that true artists were making amazing art just with text and colors (and even just text and no colors!).

The C64 PETSCII scene is also amazing. It still exists!


Art is about going further than the limitations imposed by the media you are trying to use.


Simple solution: feed the image to http://github.com/csdvrx/derasterize

(You may need to edit the characters supported to recognize things like the spades, diamonds and hearts I see on the page)

> So then we can loop over every permutation of background color, foreground color, and character and compare it to the image’s character and pick the one that has the lowest number of mismatched pixels - ideally 0.

This is also the technique used in derasterize, even if we wanted to try funnier things, like a Hough transform to spots the circles (application: a bloom-filter like approach to try the things like ° o O just right where they are needed) or a FFT to isolate zones by grainyness and apply different criterias for a more perceptive approach (application: the Sixel lemur example has fine hair, very thin in pixels but important to keep if the pixels create a line of high intensity given the background color)


This is very cool. I suspect the author encountered that 12 pixel offset due to a default value on the canvas’s text baseline property. Setting this to `top` may resolve the issue, or invoking the `measureText` method and calculating the offset from the output. A fixed value for a monospace font is pretty good too!

Shameless plug, I’ve actually built the opposite of what the author has described. Asciify[1] is my very own highly efficient and over-engineered tool to generate animated text art. It started as an excuse to learn more about browser performance and just expanded out from there. I would love it if a greater mind could squeeze another 5 or 10 FPS on the spiral demo[2]. Maybe it’s time to brush up on those WebGL docs again…

- [1] https://asciify.sister.software/

- [2] https://asciify.sister.software/demo/spiral/


Well, if you want to browse some ANSI history there is https://artpacks.org/





Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: