ASCII-artgenerator (afbeelding naar tekst)

Zet elke foto om in ASCII-art — instelbare breedte en tekendichtheid, monochrome tekstuitvoer die u kunt kopiëren of downloaden.

1.146 weergaven

100

Hoe het werkt

De generator tekent uw afbeelding op een canvas, verdeelt deze vervolgens in een raster van steekproefcellen en berekent de gemiddelde helderheid (luminantie) van elke cel. Die helderheidswaarde wordt afgebeeld op een vooraf gedefinieerde tekendichtheidsschaal — iets als @%#*+=-:. — lopend van visueel dichte, donkere tekens (@) tot schaarse, lichte tekens (een punt of een gewone spatie). Een bijna-zwarte cel wordt @, een bijna-witte cel wordt een spatie, en alles daartussenin komt ergens op de schaal terecht, evenredig met de gemeten helderheid. Kleur wordt in deze stap genegeerd — alleen luminantie, niet kleurtoon, bepaalt welk teken wordt gekozen.

Er is één addertje: vastebreedtetekens zijn hoge rechthoeken, geen vierkanten, dus het één-op-één toewijzen van pixel aan teken zou het resultaat verticaal uitrekken ten opzichte van de bronfoto. De tool corrigeert deze beeldverhoudingsmismatch door ongeveer twee keer zoveel rijen als kolommen te bemonsteren — één teken per pixel horizontaal, één teken per twee pixels verticaal — waardoor de verhoudingen van de uiteindelijke ASCII-art dicht bij de originele afbeelding blijven in plaats van kunstmatig hoog en smal te ogen.

Als concreet voorbeeld: een foto die bemonsterd wordt tot een uitvoerbreedte van 100 tekens levert ongeveer 100 kolommen bij zo'n 60-70 rijen op zodra de 2:1-verticale correctie is toegepast — klein genoeg om direct in een platte-tekstbestand, e-mail of terminal te plakken, en toch herkenbaar, omdat de tekendichtheidstoewijzing het algehele licht-donkerpatroon van het origineel behoudt, ook al is elk spoor van kleur verdwenen.

Goed om te weten

Alles gebeurt client-side: de foto wordt getekend op een <canvas>-element in het geheugen en met JavaScript pixel voor pixel teruggelezen, dus er wordt nooit iets naar een server verzonden. U kunt de uitvoerbreedte aanpassen om detail tegen omvang af te wegen — een smalle breedte levert een compact, abstracter resultaat op, terwijl een brede breedte fijner detail behoudt ten koste van een veel groter tekstblok — en de dichtheidsschaal omkeren, afhankelijk van of het resultaat wordt weergegeven op een donkere achtergrond (een terminal) of een lichte (een gedrukte pagina of wit document).

Veelgestelde vragen

Waarom ziet de uitvoer er uitgerekt of platgedrukt uit?

Vastebreedtetekens zijn hoger dan breed, dus de tool compenseert door ongeveer twee keer zoveel rijen te bemonsteren als een gewoon pixelraster nodig zou hebben — dit houdt de verhoudingen dicht bij de originele afbeelding. Zonder die correctie zou een vierkante foto er opvallend hoog en smal uitzien zodra deze in een vastebreedtelettertype wordt weergegeven.

Hoe bepaalt de tool welk teken voor elk deel van de afbeelding wordt gebruikt?

Het middelt de helderheid van elke bemonsterde cel en beeldt die waarde af op een vaste dichtheidsschaal van tekens, gesorteerd van visueel dicht (zoals @ of #) tot schaars (zoals . of een spatie) — donkerdere gebieden krijgen dichter ogende tekens, lichtere gebieden krijgen schaarsere. Voor deze toewijzing wordt alleen luminantie gebruikt; de oorspronkelijke kleur van elk gebied heeft geen invloed op welk teken wordt gekozen.

Moet ik de tekenschaal omkeren?

Als u het resultaat op een donkere achtergrond toont (zoals een terminal), houd dan de standaardinstelling aan. Plakt u het op een lichte achtergrond (zoals een wit document), keer de schaal dan om zodat donkere gebieden visueel nog steeds "zwaarder" ogen — anders draait de tonale relatie om en kan de afbeelding eruitzien als een fotografisch negatief van het origineel.

Wordt mijn foto ergens geüpload?

Nee — de afbeelding verlaat uw browser nooit. Ze wordt op een lokaal canvas-element getekend en volledig client-side bemonsterd, op dezelfde manier waarop elke andere in-browser afbeeldingsbewerkingstool werkt zonder heen-en-weer verkeer naar een server.

Waarom levert een hogere uitvoerbreedte een gedetailleerder resultaat op?

Breedte bepaalt in hoeveel steekproefcellen de afbeelding wordt verdeeld — meer cellen betekent dat elke cel een kleiner stukje van de oorspronkelijke foto bestrijkt, dus helderheid wordt met een fijnere korrel gemeten en kleine details (een oog, een bladrand, fijne textuur) overleven de omzetting in plaats van weggemiddeld te worden tot één plat teken.

Reacties

Nog geen reacties — schrijf de eerste!

Vergelijkbare tools