all 3 comments

sorted by: hot top controversial new old
[–] 2 points 9 months ago* (1 child)

(|)

edit: fuck this, fucking webshite,. its fucking my ascii-arse

(UNDERSCORE|UNDERSCORE)

fml

  • source
  • hideshow 1 child comment
  • [–] 2 points 9 months ago

    That's a really interesting blog post. Thanks for sharing!

  • source
  • 38 comments in c/technology@lemmy.world view that post
    [–] 69 points 8 months ago (1 child)

    𓀥 | 𓁆 𓀕

    𓁆 𓀟 | 𓀣 𓁀

  • source
  • hideshow 1 child comment
  • [–] 62 points 8 months ago (6 children)

    Really cool article. Except this bit:

    The image of Saturn was generated with ChatGPT.

    Fucking why? Could have saved time and energy with traditional search. Leave the slop out, please.

  • source
  • hideshow 6 child comments
  • [+] 44 points 8 months ago* (4 children)
  • [–] 8 points 8 months ago (3 children)

    Exactly, makes no sense to me

  • source
  • parent
  • hideshow 3 child comments
  • [–] 6 points 8 months ago* (2 children)
  • [–] 4 points 8 months ago

    Absoutely. It takes like 5 seconds to get a real photo.

    But I have considerable downvotes on my original comment. Maybe bots. Maybe AI bros who need to see the light and that their tech is based on the death of IP law.

  • source
  • parent
  • [–] 25 points 8 months ago* (last edited 8 months ago) (9 children)

    This guy built an image-to-ASCII renderer.

    This is so impressive!!!

    Mesmerizing...

  • source
  • hideshow 9 child comments
  • [–] 12 points 8 months ago (8 children)

    I made one myself many years ago for DOS, but mine renders in 512 pseudo halftone colors from a base palette of 16 colors. Results look pretty nice for whatever it's worth, but yeah mine doesn't focus on their efforts to get more crisp edges.

    Still neat though, food for my thoughts even, should I ever revisit my old project.

  • source
  • parent
  • hideshow 8 child comments
  • [–] 5 points 8 months ago (3 children)

    Yes you should, this would be awesome with a special focus on the crisp edges!

  • source
  • parent
  • hideshow 3 child comments
  • [–] 0 points 8 months ago* (2 children)

    I'm not exactly sure how I'd incorporate both techniques into the same rendering system though.

    My method doesn't use letters, numbers or punctuation characters, mine uses the DOS mode block characters, blank space, 25%, 50%, 75% halftone characters, and the 100% solid block character.

    I could probably get a little closer to sharper shape edges with my method if I add in the upper half block and lower half block characters, but when using those characters I'm no longer able to use the halftone dithering and would be limited to 8 background and 16 foreground colors..

    I dunno where I'd really even start (over) again to use alphanumeric characters with my text rendering method...

  • source
  • parent
  • hideshow 2 child comments
  • [–] 1 point 8 months ago (1 child)

    Maybe converting the DOS blocks to ANSI blocks. But i don't know if this is feasible with your coding...

  • source
  • parent
  • hideshow 1 child comment
  • [–] 1 point 8 months ago

    Yeah, I don't think that's particularly feasible with my prime directives in coding things meant to render on a potato. If I'm ever gonna revisit that old code again, I want it to continue to be able to run on old-school 286 CPUs, real raw hardware.

    Like sure I don't mind writing old QBasic/QuickBasic code under an emulator, but if I'm writing on such an antiquated language for legacy hardware, I wanna be able to transfer it to a floppy disk and run it on actual hardware from the era.

    Other than that, going back to the good old days, I don't see much reason to do such coding on modern systems. Though I will say this much, neofetch and the newer fastfetch are pretty awesome character based sysinfo utilities!

    I just don't see myself trying to jump through conversion hoops such as ASCII to ANSI for such a project to even keep me awake..

  • source
  • parent
  • [–] 2 points 8 months ago (3 children)

    Would love to see your implementation. Have you considered making it public?

  • source
  • parent
  • hideshow 3 child comments
  • [–] 5 points 8 months ago (2 children)

    Sure, have at it!

    Sorry it's not a full complete dump with examples, but it's programmed in QBasic 1.1 and converts raw RGB pixel data into equivalent closest matching color halftone onscreen characters. I designed it in mind with DOS text modes of either 80x25, 80x43, or 80x50 text modes, but I'm sure the technique can work with any text mode that can properly render the old DOS block characters. But, I'm betting that whatever device you're using right now is almost certainly not configured to display the old DOS block characters as they were back in the day.

    Good luck!

    REM TEXTPSET.BAS
    REM over_clox - February 26, 2008
    
    DECLARE SUB DisplayRAW (FileName$, W%, H%)
    DECLARE SUB TextPSet (X%, Y%, R%, G%, B%)
    DECLARE SUB TextPixel (Red%, Green%, Blue%, Char$, FGround%, BGround%)
    DECLARE SUB HTMtoRGB (HTMColor$, Red%, Green%, Blue%)
    
    TYPE PaletteType
        R AS INTEGER
        G AS INTEGER
        B AS INTEGER
    END TYPE
    
    REDIM SHARED DOSPalette(15) AS PaletteType
    REDIM SHARED FakePalette(15, 7, 1 TO 3) AS PaletteType
    
    RESTORE
    FOR I% = 0 TO 15
        READ HTMColor$
        HTMtoRGB HTMColor$, R%, G%, B%
        DOSPalette(I%).R = R%
        DOSPalette(I%).G = G%
        DOSPalette(I%).B = B%
    NEXT
    
    FOR C% = 1 TO 3
        C2% = 4 - C%
        FOR B% = 0 TO 7
            FOR F% = 0 TO 15
                R1% = DOSPalette(F%).R: R2% = DOSPalette(B%).R
                G1% = DOSPalette(F%).G: G2% = DOSPalette(B%).G
                B1% = DOSPalette(F%).B: B2% = DOSPalette(B%).B
                FakePalette(F%, B%, C%).R = (R1% * C% + R2% * C2%) \ 4
                FakePalette(F%, B%, C%).G = (G1% * C% + G2% * C2%) \ 4
                FakePalette(F%, B%, C%).B = (B1% * C% + B2% * C2%) \ 4
            NEXT
        NEXT
    NEXT
    
    'MS-DOS Text Mode 16 Color Palette
    DATA 000000,0000AA,00AA00,00AAAA,AA0000,AA00AA,AA5500,AAAAAA
    DATA 555555,5555FF,55FF55,55FFFF,FF5555,FF55FF,FFFF55,FFFFFF
    
    CMD$ = COMMAND$
    IF CMD$ <> "" THEN
        DisplayRAW CMD$, 80, 25
    ELSE
        DisplayRAW "LOGO.RAW", 80, 25
    END IF
    
    'DEF SEG = &HB800: BSAVE "LOGO.BSV", 0, 4000
    
    COLOR 7, 0
    
    DO: Hit$ = UCASE$(INKEY$): LOOP WHILE Hit$ = ""
    
    SUB DisplayRAW (FileName$, W%, H%)
    
        FileNum% = FREEFILE
        OPEN FileName$ FOR BINARY AS FileNum%
        CLS : WIDTH W%, H%
        ScanLine$ = SPACE$(W% * 3)
        FOR Y% = 0 TO H% - 1
            GET #1, , ScanLine$
            FOR X% = 0 TO W% - 1
                R% = ASC(MID$(ScanLine$, X% * 3 + 1, 1))
                G% = ASC(MID$(ScanLine$, X% * 3 + 2, 1))
                B% = ASC(MID$(ScanLine$, X% * 3 + 3, 1))
                TextPSet X%, Y%, R%, G%, B%
            NEXT
        NEXT
        CLOSE FileNum%
    
    END SUB
    
    SUB HTMtoRGB (HTMColor$, Red%, Green%, Blue%)
        Red% = VAL("&H" + MID$(HTMColor$, 1, 2))
        Green% = VAL("&H" + MID$(HTMColor$, 3, 2))
        Blue% = VAL("&H" + MID$(HTMColor$, 5, 2))
    END SUB
    
    SUB TextPixel (Red%, Green%, Blue%, Char$, FGround%, BGround%)
        ' °±²Û (32,176,177,178,219)
       
        Diff% = 768: BGround% = 0
        FOR F% = 0 TO 15
            RDiff% = ABS(DOSPalette(F%).R - Red%)
            GDiff% = ABS(DOSPalette(F%).G - Green%)
            BDiff% = ABS(DOSPalette(F%).B - Blue%)
            NewDiff% = RDiff% + GDiff% + BDiff%
            IF NewDiff% < Diff% THEN
                Diff% = NewDiff%: Char$ = "Û": FGround% = F%
            END IF
        NEXT
    
        FOR C% = 1 TO 3
            C2% = 4 - C%
            FOR B% = 0 TO 7
                FOR F% = 0 TO 15
                    RDiff% = ABS(FakePalette(F%, B%, C%).R - Red%)
                    GDiff% = ABS(FakePalette(F%, B%, C%).G - Green%)
                    BDiff% = ABS(FakePalette(F%, B%, C%).B - Blue%)
                    NewDiff% = RDiff% + GDiff% + BDiff%
                    IF NewDiff% < Diff% THEN
                        Diff% = NewDiff%: Char$ = CHR$(175 + C%)
                        FGround% = F%: BGround% = B%
                    END IF
                NEXT
            NEXT
        NEXT
    
    END SUB
    
    SUB TextPSet (X%, Y%, Red%, Green%, Blue%)
        TextPixel Red%, Green%, Blue%, Char$, FGround%, BGround%
        LOCATE Y% + 1, X% + 1: COLOR FGround%, BGround%: PRINT Char$;
    END SUB
    
  • source
  • parent
  • hideshow 2 child comments
  • [–] 5 points 8 months ago (1 child)

    You are amazing. Thank you very much for delivering! Half of the fun is discovering how it works without examples so no need to apologise :^)

    I need to look into running QBasic on my M4. Unsure about my options for now. Worst case scenario I spin up a VM tomorrow.

  • source
  • parent
  • hideshow 1 child comment
  • [–] 4 points 8 months ago

    Meh, DOSBox is plenty suitable enough, and QBasic is easy enough to find...

    https://winworldpc.com/product/qbasic/1x

    I can't promise that DOSBox emulated results will give the exact color results as original old-school hardware on an old CRT, but results should still be mighty close.

    The raw input data files are pretty simple to generate with most graphics software, just downsample down to potato 80x25, then export to raw 888 RGB format.

  • source
  • parent
  • [–] 22 points 8 months ago (8 children)

    ░░█▀░░░░░░░░░░░▀▀███████░░░░ ░░█▌░░░░░░░░░░░░░░░▀██████░░░ ░█▌░░░░░░░░░░░░░░░░███████▌░░ ░█░░░░░░░░░░░░░░░░░████████░░ ▐▌░░░░░░░░░░░░░░░░░▀██████▌░░ ░▌▄███▌░░░░▀████▄░░░░▀████▌░░ ▐▀▀▄█▄░▌░░░▄██▄▄▄▀░░░░████▄▄░ ▐░▀░░═▐░░░░░░══░░▀░░░░▐▀░▄▀▌▌ ▐░░░░░▌░░░░░░░░░░░░░░░▀░▀░░▌▌ ▐░░░▄▀░░░▀░▌░░░░░░░░░░░░▌█░▌▌ ░▌░░▀▀▄▄▀▀▄▌▌░░░░░░░░░░▐░▀▐▐░ ░▌░░▌░▄▄▄▄░░░▌░░░░░░░░▐░░▀▐░░ ░█░▐▄██████▄░▐░░░░░░░░█▀▄▄▀░░ ░▐░▌▌░░░░░░▀▀▄▐░░░░░░█▌░░░░░░ ░░█░░▄▀▀▀▀▄░▄═╝▄░░░▄▀░▌░░░░░░ ░░░▌▐░░░░░░▌░▀▀░░▄▀░░▐░░░░░░░ ░░░▀▄░░░░░░░░░▄▀▀░░░░█░░░░░░░ ░░░▄█▄▄▄▄▄▄▄▀▀░░░░░░░▌▌░░░░░░ ░░▄▀▌▀▌░░░░░░░░░░░░░▄▀▀▄░░░░░ ▄▀░░▌░▀▄░░░░░░░░░░▄▀░░▌░▀▄░░░ ░░░░▌█▄▄▀▄░░░░░░▄▀░░░░▌░░░▌▄▄ ░░░▄▐██████▄▄░▄▀░░▄▄▄▄▌░░░░▄░ ░░▄▌████████▄▄▄███████▌░░░░░▄ ░▄▀░██████████████████▌▀▄░░░░ ▀░░░█████▀▀░░░▀███████░░░▀▄░░ ░░░░▐█▀░░░▐░░░░░▀████▌░░░░▀▄░ ░░░░░░▌░░░▐░░░░▐░░▀▀█░░░░░░░▀ ░░░░░░▐░░░░▌░░░▐░░░░░▌░░░░░░░ ░╔╗║░╔═╗░═╦═░░░░░╔╗░░╔═╗░╦═╗░ ░║║║░║░║░░║░░░░░░╠╩╗░╠═╣░║░║░ ░║╚╝░╚═╝░░║░░░░░░╚═╝░║░║░╩═╝░

  • source
  • hideshow 8 child comments
  • [–] 3 points 8 months ago (7 children)
  • [–] 2 points 8 months ago (3 children)
  • [–] 5 points 8 months ago

    Quality article - thanks for sharing!

    I used to make (very bad) ASCII art as a hobby during my PhD (it's good for relaxing), and a lot of the "smoothing" I learned but I think the method for good contrast would have really helped back then!

  • source
  • [–] 5 points 8 months ago

    I remember back in the day getting my mind blown by the BB demo on a live Linux CD (Knoppix?)

    I only know the library for doing this stuff is libcaca just because it's libpoop in spanish

  • source
  • [–] 4 points 8 months ago

    Wow that was a much deeper dive than I expected, very interesting!

  • source
  • [–] 3 points 8 months ago (4 children)

    The link gives me Application error: a client-side exception has occurred (see the browser console for more information).

    Anyway here's hasciicam.

  • source
  • hideshow 4 child comments
  • [–] 3 points 8 months ago

    I really love when people share this kind of articles, they are so entertainment and you learn a lot.

  • source
  • [–] 1 point 8 months ago

    No repo? Crazy to put the writing in but not share the work (unless I missed it).

  • source
  • 5 comments in c/programming@programming.dev view that post
    [–] 10 points 9 months ago (2 children)

    I don’t believe I’ve ever seen shape utilized in generated ASCII art

    Ah, someone's never seen 8088 Corruption. The encoder was a brute-force comparison of source pixels with downscaled / blended characters in CGA's few available colors.

    ... wait, AAlib definitely uses shape. Is the author just new to ASCII art?

    Killer effort, regardless.

  • source
  • hideshow 2 child comments
  • [–] 4 points 9 months ago (1 child)

    When I was in my teens and twenties, I used to believe that if I thought of something that I'd never heard of before, I must have been the first person ever to come up with it.

    Now that I'm older and the Internet is ubiquitous, when I have those moments I go straight to a search engine. And even if I'm not the first, I still feel pretty good about discovering whatever it is for myself.

  • source
  • parent
  • hideshow 1 child comment
  • [–] 6 points 9 months ago (1 child)

    I was kind of interested in doing this for Unicode a while back, which has the potential to provide for a lot more possible characters and thus a lot more-accurate renditions. If you don't care about real-time operation, I suspect that you can do this with off-the-shelf software by just writing a small amount of code to generate an image for each character


    a shell script driving ImageMagick could do it


    and then feeding it into photomosaic software, like metapixel.

    The major limitation is that unless you're just interested in doing this for the text-based aesthetic and are actually rendering and presenting an image to the end user


    think something like Effulgence RPG, Warsim, Armoured Commander II, Armoured Commander, Cogmind, SanctuaryRPG, Cataclysm: Dark Days Ahead, Stone Story RPG, Roots of Harmony, and so forth


    you can't control the font that the thing is rendered in on the end user's computer. And the accuracy of the rendering degrades the more the typeface used on an end user's computer differs from your own.

    It'd probably be possible to build some kind of system that does take into account the differences for different typefaces, scores characters higher based on checking for character similarity across different typefaces.

    Note that there are also at least two existing libraries out there


    what I can think of off the top of my head


    that will do image-to-ASCII conversion


    aalib and libcaca, the latter of which has color support. I also posted a tiny program some time back to generate images using the colored Unicode tiles, and I imagine that someone out there probably has a website that does the same thing.

  • source
  • hideshow 1 child comment
  • [–] 3 points 9 months ago

    I apparently actually did two of these on different occasions, using different, restricted Unicode character ranges (ones that only look at the value of the character as a whole, no subpixel rendering). Can't find the (newer) color one, but the black-and-white one:

        ░                                                                         
      ░░░░░░░                                                                     
     ░▒▒▒▒▒▒▒░░░                                                                  
     ░▒▓▓▓▒▒▒░░░░░                                                                
     ░▒▓▓▓▓▒▒▒▒▒░░░░░                                                      ░░░    
     ░▒▓▓▓▓▓▓▓▒▒▒▒▒▒▒░░                                              ░░░░░░░░░░░░░
     ░▒▓▓███▓▓▓▓▒▒▒▒▒▒▒░░                                         ░░░▒▒▒▒▒▒▒▒▒▒▒░░
     ░▒▓▓▓████▓▓▓▒▒▒▒▒▓▒▒░░                                 ░░░░░░▒▒▒▒▒▒▒▒▒▒▓▓▒▒░ 
      ░▒▓▓▓███▓▓▒▒▒▒▒▒▒▒▒▒░░░░░░░░░░░░░░░░░░░             ░░▒▒▒▒▒▒▒▒▒▒▒▒▒▓▓▓▓▓▒░  
       ░▒▓▓▓█▓▓▓▒▒▒▒▒▒▒▒▒▒▒░░░░░░░░░░░░░░░▒▒▒░░░░░░░░░░░░░▒▒▓▓▓▓▓▓▒▒▒▒▓▓▓▓▓▓▓▒░   
        ▒▓▓▓██▓▓▓▒▒▒▒▒▒▓▓▓▒▒░░░░▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒░░░░▒▒▒▓▓▓▓▓▒▒▒▓▓▓▓▓██▓▓▓▒░    
        ░▒▓▓▓████▓▓▓▓▓▓▓▓▓▓▒░░░▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒░▒▒▒▒▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓█▓▓▓▒░     
        ░▒▒▓▓▓████▓▓▓▓▓▒▒▒▒▒▒░▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒░▒▓▓▓▓▓▓▒▒▒▓▓▓▓▓▓▓▓▒░       
        ░░▒▓▓▓▓██▓▓▓▒▒▒▒▒░░░░░░▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒░▒▒▒▓▓▓▓▓▓▓▓▓▓▓▓█▓▓▓░░        
         ░▒▓▓▓▓▓▓▓▒▒░░░░░░░░░░▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒░░░░▒▒▒▒▓▓▓▓███▓▓▓▒░          
          ░▒▓▓▓▒▒░░░░░░░░░░▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒░░░░░░░▒▒▓▓██▓▓▓▓▒░           
            ▒▒▒░░░░░░░░░░░░░░░▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒░░░░░░░▒▒▓▓▓▓▓▓▒░            
          ░░░░░░░░░░░░░░▒░░░░░▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒░░░░░░░░░▒▒▒▓▓▓▒░             
          ░▒▒▒░░░░▒▒▒▒░░▒▒▒▒▒▒▒▒▓▓▓▓▒▒▒▒▒▒▒▒▒▒▓▓▒▒▒▒░░░░░░░░░░▒▒▒▒▒░              
         ░░▒▒▒▒░▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▓▓▓▓▓▒▒▒▒▒▒░▒▒▒▓▓▓▒▒▒▒▒░░░░░░░░░░▒▒░               
        ░░▒▒▒▒▒▒▒▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒▒▒▒▒▒▒▒▒▒▒▓▓▓▓▒▒▒▒▒░░░░░░░░░▒░░               
        ░░▒▒▒▒▓▓▓▓▓▓▓▒▒▒▒▓▓▓████▓▓▒▒░░░░▒▒▒▒▒▒▒▓▓▓▓▓▓▓▓▓▓▒▒▒░░░░▒░░               
       ░▒▒▒▒▒▓▓▓▓▓▓▓▓▒▒▒▒░░░▒▒▓▓▓▓▒▒░░░░░░░░░▒▓▓████▓▓▓▓▒▒▒▒▒▒░░░░░               
      ░░▒▒▒▓▓▓▓▓▒▒▒▓▓▓▓▓▒▒▒░░░▒▒▓▒▒░░░░░░░░░░░▒▓▓▓▒▒▒▒▒░░▒▒▒▒▒▒░▒░                
        ░▒▒▓▓▓▒▒▒▓▓▓▓▓▓▓▓▓▒▒▒▒▒▒▒▒░░░░░░░░░░░░░▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒░░                 
         ░▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒▒▒░░░░░░░░░░░░░░▒▒▒▒▒▒▓▓▓▒▒░▒▒▒▒░                 
           ░▒▓▓▓▓▓▓▓▓▓▓▓▒▒▒▒▓▓▓▒▒▒░░░░░░░░░░░░░░▒▒▒▒▒▒▒▓▓▒▒▒░░▒▒▒░                
            ░▒▓▓▓▓▓▓▓▓▒▒▒▒▒▒▓▓▒▒▒▒░░░░░░  ░░░░░▒▒▒▒▒░░▒▒▒▒▒▒▒▒▒▒▒░                
             ░▒▓▓▓▓▓▓▓▓▓▒▒▒▒▓▓▒▒░░░░░░      ░░░░▒▒▒▒░░▒▒▒▒▓▓▓▓▓▒▒░                
               ░▒▓▓▓▓▓▓▓▒▒▓▓▓▒░░  ░░░░░▒▒▒░░   ░░▒▒░░░▒▓▓▓▓▓▒▒▒▒░                 
                ░▒▒▒▓▓▓▓▓▓▓▓▒░░   ░░▒▓▓▓▓▓▓▒░░  ░░▒▒▒▓▓▓▓▓▒▒▒▒░                   
                     ░▒▒▓▓▓▓▒░   ░▓▓█▓▓▓▒▒▓▓▓▒░  ░▒▒▓▓▓▓▒▒▒▒░                     
                        ▒▒▓▒▒▒░░░▒▓███████▓██▓░   ░▒▓▓▓▒░░                        
                          ▒▒▒▒▒▒▒▒▓████▓▓████▓░   ░▒▒▒░                           
                            ░▒▒▒▒▒▓▓▓██████▓▒▒░░░░                                
                              ░▒▒▒▒▒▓▓▓▓▓▓▓▒▒▒▒░░                                 
                                ▒▒▓▓▓▓▓▓▓▓▓▒░░                                    
                                  ░░▒▒▒▒▒▒░░                                      
    

    Is generated by the program with this uuencoded source:

    source

    begin 644 unicode_image.tar.xz
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
    !6@``
    `
    end
    

    I've also seen various programs that use the Braille Unicode characters for higher-resolution bitmap rendering, like mapscii, and I suspect that someone's probably written software to convert to that.

  • source
  • parent
  • 1 comment in c/hackernews@lemmy.bestiver.se view that post
    [–] 3 points 9 months ago

    Better than the one I made a few years ago

  • source