[HN Gopher] ASCII Silhouettify
       ___________________________________________________________________
        
       ASCII Silhouettify
        
       Author : thunderbong
       Score  : 261 points
       Date   : 2024-06-07 17:10 UTC (5 hours ago)
        
 (HTM) web link (meatfighter.com)
 (TXT) w3m dump (meatfighter.com)
        
       | teddarific wrote:
       | This is really neat. Have always wondered how these work under
       | the hood / the algorithm behind them.
       | 
       | Would love a web version that's easily usable though; as much as
       | I live in the terminal, just too much of a mental burden
       | installing a new package.
        
         | throwup238 wrote:
         | _> Would love a web version that 's easily usable though; as
         | much as I live in the terminal, just too much of a mental
         | burden installing a new package._
         | 
         | The link is above the fold: https://meatfighter.com/ascii-
         | silhouettify/spa/index.html#/
        
           | teddarific wrote:
           | Oh amazing, no idea how I missed that green button LOL. Was
           | too excited about the details.
        
       | WaitWaitWha wrote:
       | 'What has been, it is what will be, And what has been done, it is
       | what will be done. So there is nothing new under the sun.'
       | 
       | Nicely done. We used to print birthday banners and pictures using
       | EBCDIC & ASCII on continuous-paper band- then dot-matrix
       | printers, in a very similar fashion, recognizing the 'density' of
       | characters, once printed.
        
       | hazn wrote:
       | absolutely cool stuff!
       | 
       | if we hackers have an aesthetic, it's ascii and demo scene. truly
       | beautiful things we can be proud of
        
       | hernandipietro wrote:
       | awesome algorithm, curved features seem to be perfectly
       | reproduced by each ASCII character density and geometry.
        
         | kevin_thibedeau wrote:
         | Should have backslashes in lower left and upper right
         | quadrants. Also apostrophe instead of period in lower half.
        
       | f33d5173 wrote:
       | _,                        ,<g g__                  _ _ @ %g[   @
       | ,   @ ]P@ @_) "       g"" ,*'g   @ %r"       @p  "@ @ "       @Lm
        
         | fallingsquirrel wrote:
         | EaJd8S ?
        
           | f33d5173 wrote:
           | The farther away from your computer you stand, the clearer it
           | becomes. It might help knowing it's a small part of a company
           | logo on the examples page.
        
             | maicro wrote:
             | "Est. 1885" is what it looks like when scaling this page
             | down to 10%.
        
         | mmastrac wrote:
         | I had to cheat and look at the examples page -- it's part of
         | the Dr. Pepper logo.
        
       | rixrax wrote:
       | On stock rPi5 running this takes > 3 seconds. Three seconds to
       | render 370 x 370, 8-bit/color RGBA image to ASCII on a 2.4GHz
       | CPU. And this is my lead-in to rant about neofetch, which takes
       | about 0.2 seconds to run on the same Pi (see below), which would
       | also be the time it would slow down opening a shell should I put
       | neofetch into my .profile. Lastly, it takes cat to cat output of
       | neofetch to /dev/null about ~0.01 seconds, which also is the time
       | that neofetch should probably take to run (and really, this tool
       | too).                 $ time ascii-silhouettify -i neofetch-1.png
       | > /dev/null       real 0m1.817s       user 0m3.541s       sys
       | 0m0.273s       $ time neofetch > out.txt       real 0m0.192s
       | user 0m0.118s       sys 0m0.079s       $ time cat out.txt > time
       | real 0m0.001s       user 0m0.001s       sys 0m0.000s
        
         | lalaithion wrote:
         | Surely the use case for this tool is to precompile your image
         | into ASCII and then just output that on every shell start up,
         | right? There's no reason to convert the image every time.
        
           | malka wrote:
           | It could be fun for realtime
        
         | adamrezich wrote:
         | It's a Node application, I don't know why you expected high
         | performance
        
         | arp242 wrote:
         | I would assume that performance wasn't the prime concern, but
         | rather the accuracy/appearance of the generated image. Most
         | people aren't putting this in their shell startup, just as most
         | people aren't putting an ffmpeg encode command in their shell
         | startup.
         | 
         | And I would assume neofetch is relatively slow because getting
         | some of the system information is relatively slow. e.g. to get
         | the GPU name it does "lspci -mm":                 % time lspci
         | -mm >/dev/null       lspci -mm > /dev/null  0.03s user 0.03s
         | system 2% cpu 2.993 total       % time lspci -mm >/dev/null
         | lspci -mm > /dev/null  0.03s user 0.01s system 76% cpu 0.053
         | total
         | 
         | Guess it's faster that second time due to kernel cache or
         | whatnot, but 50ms is still fairly slow. And that's only the
         | GPU.
        
         | fwlr wrote:
         | The algorithm involved is actually very hefty: for each cell of
         | a 9px by 15px grid over the image, compare each pixel of the
         | cell to its equivalent pixel in each of the 95 ascii
         | characters. To solve for optimal grid alignment, it repeats
         | this for each of the 9x15 possible positionings of the image
         | under the grid.
        
       | SillyUsername wrote:
       | Great job reminds me of Telnet Matrix but with colour :) (Edit
       | also just found this https://ascii.theater/ )
       | 
       | I wrote something similar a few years ago for a retro computer
       | image converter using a fixed font from that computer, it also
       | did dithering prior to character conversion as it resulted in
       | finer gradients for photos.
       | 
       | https://github.com/KodeMunkie/imagetozxspec/blob/master/src/...
        
       | belter wrote:
       | There they are again with their npm. Great project but why? What
       | happened to a _normal_ install...
        
         | jameshart wrote:
         | You don't need to install it at all. Just run it via npx.
        
         | Cthulhu_ wrote:
         | What alternative do you propose? NPM works the same way
         | everywhere; there is no other package manager that is as
         | crossplatform and ubiquitous as NPM.
        
         | wruza wrote:
         | Yeah, what happened to it. Or not happened. I npm/yarn link my
         | own cli repos everywhere because setting up anything else takes
         | hours and is a mess. I even develop python scripts with
         | `nodemon main.py` (lol) because only n-guys know what people
         | need, it seems.
        
       | lawlessone wrote:
       | feels like an 80s/90s version of what future tech companies etc
       | would look like with all those logos
        
       | memalign wrote:
       | I made a similar tool (for making game sprites that can be
       | embedded directly in code):
       | 
       | https://memalign.github.io/m/pceimage/index.html
       | 
       | Works on the web and colorized ASCII output can be edited. It can
       | be a bit fiddly though: need to manually turn off Wobble and
       | adjust the pixel sampling size to get a good result.
        
         | zellyn wrote:
         | That's really fun. I love it! One recommendation: it might be
         | nice to add a mode where it doesn't wobble, but retains the
         | cuteness that results from thickening and rounding corners.
        
       | andrewstuart wrote:
       | How would these images look if each character was a pixel? Worse?
        
       | enigmarc wrote:
       | If you love ASCII-related art then I'm sure you'll like this
       | animated ASCII tool (GIF to ASCII):
       | 
       | https://www.gifcii.fun
       | 
       | (full disclosure: I made it)
        
         | naet wrote:
         | For someone who loves gifs this is really fun.
         | 
         | It would be cool if you could save it somehow, maybe as another
         | gif or video.
        
         | lucgagan wrote:
         | Woah, this is very _fun_!
        
         | lying4fun wrote:
         | this is amazing, thank you
        
       | figbert wrote:
       | Coolest page on the site: https://meatfighter.com/ascii-
       | silhouettify/color-gallery.htm...
        
         | acureau wrote:
         | The Wendy's logo is slightly horrifying
        
         | doublerabbit wrote:
         | Oh, the Z one is very clever.
         | 
         | Almost gives you another perspective in to icon graphic design.
        
       | aendruk wrote:
       | It's nice how / forms a neat edge on parts of the Disney logo. I
       | imagine that effect must be sensitive to grid alignment. It would
       | be helpful to have a live preview for choosing the most
       | aesthetically pleasing alignment.
        
       | xenodium wrote:
       | oooh, this is timely. I'm working on a blogging service where you
       | can set ASCII art as its home page header at https://lmno.lol
       | 
       | I was delited to find a figlet js port at
       | https://github.com/patorjk/figlet.js, which I use to generate
       | default headers for new blogs. You can see it on my blog
       | https://lmno.lol/alvaro or new ones like https://lmno.lol/ivyink
       | and https://lmno.lol/stormsprite.
       | 
       | Looking forward to playing with silhouettify and other
       | suggestions in comments.
        
         | pvorb wrote:
         | Those ascii art headers don't look correct on my phone. I'm
         | using Firefox on Android, so that might only affect a limited
         | group of people. But I think it should just be working with a
         | <pre> tag and a monospace font, right?
        
           | xenodium wrote:
           | Ooh, thanks for reporting that! Looking into it. It should
           | look something like this https://imgur.com/a/V55N1f1
           | (Safari/iOS).
        
           | unclad5968 wrote:
           | Same here. Brave on android
        
       | hhh wrote:
       | This is awesome. I love ASCII (and ANSI) art, but recently have
       | been working on creating forms for Space Station 14. Sadly, SS14
       | does not use a monospaced font for papers.
       | 
       | I have been using ASCGEN2, which lets me specify a font, but this
       | seems much nicer. Does anyone know if there's something similar
       | that lets you specify a font and try to find the best fit?
        
       | kristopolous wrote:
       | I'll still use https://asciiflow.com/# over figma
        
       | amelius wrote:
       | Funny, because just one day ago we had:
       | 
       | https://news.ycombinator.com/item?id=40598629
        
       ___________________________________________________________________
       (page generated 2024-06-07 23:00 UTC)