This was an attempt to rewrite the python version of title_creator in Go. The idea was to improve the speed. And yes, it is much faster but with caveats, see State.
,,,_ _gMMp, _qqq, ,qqq
MMMMMM %MMMMMk MMMMM @MMMMB
@MMMM" MMMM" MMMMW @MMMM
@MMMM ]MMMM MMMMB @MMMM
MMMMM 1MMMM MMMMB @MMMM
MMMMH 1MMMM _gMMMMp, MMMMB @MMMM ,pMMMMpq_
@MMMH dMMMM pMMMMMMMMp MMMMB 1MMMM gMMMMMMMMMp
@MMMM,qqpMMMMMp MMMMP %MMM MMMMB 1MMMM gMMM@ @MMMp
@MMMMMMMMMMMMMMMM gMMMK @MMM MMMMB 1MMMM _MMMM MMMM
"MMMMMMMWWPMMMM" MMMM gMMM" MMMMB 1MMMM gMMMH MMMM
@MMMM MMMM MMMM_gMMMH` MMMMB 1MMMM MMMMB MMMM
@MMMM MMMM MMMMMMMH" MMMMB jMMMM @MMMH qMMMM
@MMMM MMMM MMMMW"` ,pp_ MMMMB ]MMMM 'MMMM @MMMW
@MMMM @MMMM MMMMk ,MMMM MMMMB ]MMMM @MMMp gMMMM
@MMMM MMMMM@ MMMMMMMMMMH` MMMMH gMMMM, @MMMMMMMMM`
MMMMM `"" "MMMMMWP" MMMMM @MMMM# "MMMMMM"
,,,,,,,,, =, ,,,,,,,, ,,===[] ,===[[ ,=
''[]][ ,]] ][]' [[]} {[[[ []]
[]]] ]]]] [[ [][[ ][[] [[[
[]] [}][], ]/ [[[[ ]][] []]
[]][ {] '[[] [] ,,,, , ,, {][[ ,,, ]]]] {]]
][[ =[ \[]] ,]' ,=='''''=]]= ===[[[ ,=][]] {[[ ,=='''=[][[[] []
[[[, ,]' []]\ [} ,][' '[]], [][=/'''[[ {]] ,[]' '{[]] [[
']]] [/ [[], ][ ,][[ ']]] [[[ {[] ,][' ][[] []
][[, [} ']][ [/ [[] ][[] ][[ {[] ]]] ][[] []
'[[] {] {[[] {[ ][[[ ][]} [[] {[][ []] ]]]] ='
][[=[ [[],]/ [][] []] ]][ []][ [[][ []]]
]][]' '[[[[ [][= ,[]' [][ [[[} '[]]= ={]]] ,==
][} \]]' \[[], ,=]' ,[[[, [[[] =]][]====' ][][, [][
title_creator is a single use script that will print a title in a window or to file
▇▀▀▇▀▀▊ ▆ ■▎ ■▊ ▞▀▜ ▝▋ ▆▏ ▖ ▇ ▆▏ ▉ ▇
▕▉ █▃■▅▖ ▄■▅ ▖■▗▖ ▗▖ ▅ ▄▏ ▗▖■▅ ▊ ▗▖ ▐▋ ▁▖■▅▖ ▗▅ ▗▖ ▄▖ ▗▖ ▅▏ ▄▃■▅▖▄■▅ ▅▄■▅▖ ▖■▄ ▗■■▟▏ ▁▖■▅▖ ▅▖ ▗▖ ▄■▅▖ ▄▄▅▖ ■▍ █▃■▅▖ ▖■▅ ▜▏ ▗▖■▖ ▗■ ▅▖ ▅ ▗▖ ▉▄▅▄ ▄▄▅ ▃■■▄ ▅ ▗▅ ▅ ▄▃■■▖ ▄■▗█ ▗▖■▄ ▗■▗▄
▉ ▜▏ ▐▋ ▟▘■▝▘ ▉ ▐▌ ▐▌ █ ▜▏ ▊ ▔ ▕▊▆▔ ▐▋ ▕▊ █ ▝▆▘ ▕▋ ▕▋ ▟▎ ▐▍ ▉ ▜▎ ▜▍ ▕▊ ▟■■▝▘▐▋ ▜▎ ▉ █ ▝▙ ▞ ▐▍■▝▀ ▐▋ ▐▍ █ ▐▌ ▟ ■▝▘ ▟▏ ▝▃▕▊ ▟▀ ▝▌ ▞ ▉ ▜▌ ▜▏ ▐▌ ▐▋ ▜▖▗█▖▗▘ ▜▍ ▊ ▗▍ █ ▐▋ ▕▉ ▜▁▁▉
▕▉ ▟▏ ▐▋ ▝▙▂▂▖ ▜▂▁▟▌ ▐▙▁▃█▂ ▟▎ ▜▄▂▄▘▕▊▝▚▃ ▐▋ ▜▂ ▂▛ ▁▞▔▚▖ ▕▊ ▕▙▁▂▟▂ ▐▍ ▉ ▟▎ ▐▍▁▃▘ ▜▄▂▂▌▕▙▂▁▟▂ ▜▖ ▂▛ ▝▆▘ ▝▙▂▂▞ ▐▋ ▐▍▁ █ ▐▌ ▜▄▂▂▖ ▟▎ ▉▁▕▊▁▗▟▁▁▂ ▜▞ ▉ ▁▟▘ ▟▏ ▝▙▁ ▄▘ ▜▛ █▘ ▟▍ ▉ ▝▙▁▂█▂ ▚▁ ▗▛ ▟▄▄▄
▔▔▔ ▔▔▔ ▔▔▔ ▔▔▔ ▔▔▐▌ ▔▔ ▔ ▔▔▔ ▔▔ ▔▔▔▔▔ ▔▔▔ ▔▔▔ ▔▔ ▔▔ ▄▂▋ ▔▔▔▔ ▔▔ ▔▔▔ ▔▔ ▟▍▔▔ ▔▔▔ ▔▔▔ ▔▔▔ ▔ ▔▔ ▔▔▔ ▔ ▔▔▔ ▔▔ ▔▔▔ ▔▔▔ ▔▔ ▔ ▔▔▔▔▔ ▄▞ ▔▔▔ ▔▔▔ ▔▔ ▔ ▔▔ ▔▔▔ ▔▔▔▔ ▔▔▔ ▕▙▂▁▃
▗▆▇▇▇▇▆▖▟█▏ ▐█▎ ▐█▍ ▆█▋ ■▊ █▉ ▗▅ ▕█▊ ▟█ ▐█▌ ▕█▋ ▂
▀▔▕█▛ ▀ ██▅▆▅ ▄▆▆▆▖ ▗▅▆▆▆▖ ▅▅ ▅▅ ▗▅▏ ▗▅▆▆▖▟█▏▗▅▎ ▗▆█▙▅ ▄▆▆▅▖▕▅▖ ▅▅ ▅▅ ▗▅▏▐▆▖ ▇▇▅▅▅▄▅▅▖ ▆▇▆▆▅ ▄▆▆▅▖ ▗▆▆██ ▄▆▆▅▖▕▅▖ ▕▆▖ ▄▆▆▅▖▗▅▄▆▆ ▕▅██▅▐█▙▆▆▖ ▅▆▆▅ █▊ ▅▆▆▅▖ ▗▆▅▆▅▗▅▖ ▗▅▏ ▐█▆▆▆▖ ▅▅▅▆▖▗▅▆▆▄ ▗▅▏▐▅▍▕▆▖▗▇▙▅▅▖ ▄▆▆█▊ ▗▅▆▆▄ ▄▆▆▇▛
▐█▌ █▉ ▐█▌▗█▁▃█▉ █▋ ▕█▌▐█▍ ▐█▎▟█ ▗█▘ ▝ ▟█▂█▛ ▐█▍ ▟▛▔ ▜█ ▜█▄█▘ ▜█ ▟▉ █▊▕█▛▔▜█▎▔█▉ █▊ ▔█▌▟▉▁▃█▋▗█▘ ▜█ ▗█▔ ▐█▏█▋ ▕█▍▟▉▁▃█▋▐█▛▔▀ ▕█▌ ▐█▌ ▜█ █▛▂▄█▍ █▋ ▀▁▃█▉ ▔▟█▀▕█▙ ▟█▏ ▐█▎ ▜█▏█▉▔▀▘█▛ ▔▜▋▜█▏▐█▍▕█▌▟█▘▔█▊ ▟█▘ █▉▐█▘ ▔█▌▐█▎ ▟▉
▟█▌ █▊ ▐█▌▜█▛▀▔ ▝█▅▄█▌▐█▍ ▐█▎▟█▏▜█ ▟█▛▜▇▖ ▐█▍ █▊ ▟█▏▗███▖ ▟█▏█▉ █▊▐█▌ ▐█▎ █▉ █▙▄▟▛▘██▀▀▔ ▜█ ▟█ ▜▉ ▐█▍▜█▁▟█ ██▀▀▔ ▐█▎ ▐█▌ ▐█▍ ▟█▕██▀▀▔ █▊ ▟▛▀▜█ ▗█▛▘ ▝▜▇█▘ ▐█▎ ▟█▏█▋ ▕█▍ ▟▉▝█▌▟█▙▗█▏▟█ █▉ █▉ █▉▐█▎ █▋ ███▛▘
▜█▊ █▉ ▟█▍▝█▆▅▅▛ ▔▀▐█▌▕█▙▅██▏▜█▎▝█▇▆▇▘▜█▎▕█▉ ▐█▋ ▝█▇▇█▛▐█▍ ▜█▏ ▆█▛ ▜█▅▟█▋▕█▋ ▟█▏ █▉ █▊▝▔ ▝█▆▅▆▌▝██▆██ ▝█▇▇█▛ ▜█▛▘ ▝█▆▅▆▌▐█▌ ▕█▙ ▐█▍ █▉ ▜█▅▅▆▘ █▉ ▜█▅██▏██▅▅▅▐▇█▛▘ ▐██▇█▘ █▉ ▜█▇▇█▘ ▜█▛▝██▘ ▜█▏▕█▊ ▝█▇▆█▊ ▜█▇██▘▜█▆▇▇▇
▟▇▇█▊ ▁▁▁ ▁ ▁ ▁▁ ▁▂ ▁▁ ▁▁ ▁ ▁▁▁ ▁ ▁▁ ▁ ▁▁ ▁ ▁ ▁ ▁ ▁▁ ▂
▀▜▛▔ ▇▏▟▎█▛▛▘ ▅█▙ ▟▏ ▜▍▇ ▅██▌█ ▟▌ ▟▛▀▘▅█▙ ▇▄ ▟▘ ▅▆▇■▗▍ ▐▋▐▙ ▗█▐█▀█▐█▛▛▏▆█▜█▏ ▟█▙ ▖ ▟▘█▛▛▘▆▛▜▌ ▟███▕▊ █▐██▀ ▐▌ ▗█▏■██▍▕▇▖▗▌ ▗▛▜▋▅█▜▊▗▇█▖▐▋ ▇▖▆▁ ▟▏ ▗▇███▏▟█▙ ▗▛▜▋
▟▌ █▄█▏█▆▌ ▕▊▔█▏█ ▐▍▉▐▛ ▝▘█▟▘ █▅▆▕▊ ▜▎▝██▋ ▕▋ ▟▎ ▐▋▟█▄██▐▙▆▛▐█▆▎ ▉ ▟▎ ▐▌ █▐█▃▛▕█▆▖▕█▄█▘ █▎ ▕▊▅▉▐▙▆▎ ▐▍ ▗▊█▍ ▟▀ ▝▜▛ ▜██▅▜▙▟▘▟▎▕▊▟▋▟▎ ▜▌██▅█ ▉ ▟▐▋ ▜▏▉ ▅▙
▜▋ █▔▜▎█▅▅▖ ▕███ ▜▆▅█▕▉▝▙▅▄▖██▅ ▉▔ █▆▛ ▟▜█▎ ▐▆▉ ▝▇▅▟▘▟▛▀▘▜▕▊▔ ▐█▅▅▐█▅▇▛ ▐█▆▛ ▜█ ▕█▅▅▖▜█▅ █▎ ▐▊▔▉▐█▅▅ ▐▙▅▅▟▛▜▌▟█▆▆▏ ▟▘ ▟▙▅▘▐█▙▖▝▇▇▘▝███▆█▐▋▝▜█ ▐█▅▇▛▕█▆▛▕█▆██
▔▔ ▔ ▝▘▔▔▔ ▔▔▔ ▔▔ ▔ ▔▔▔ ▔ ▔ ▔ ▔ ▔ ▔▔ ▔▔▔ ▔ ▔ ▔ ▔▔▔ ▔▔▔ ▔▔ ▔ ▔▔▔ ▔ ▔ ▔ ▔ ▀ ▔▔▔ ▔▔▔▔ ▔▔▔▔▔ ▔ ▔▔ ▔▔ ▔▔ ▔ ▔▔ ▔ ▀ ▔▔▔ ▔▔ ▔▔▟
▅▅▆▆▅▐█▏ ▆▆ ▐█▎ ▗▇▊ ▗▆▖ ▟▊ ▂▂ ▟▊ ▟▊ ▟▊ █▌
▟█▔ ▟█▃▃ ▂▃▃ ▃▃▂▃ ▃▖ ▃▃ ▃▔ ▂▃▃ ▟█ ▃▖ █▊ ▁▃▃▁ ▃▃ ▁▃ ▗▃ ▃▖ ▃▃ ▃▂▃▂▁▃▂ ▃▃▃▃ ▁▃▃▁ ▃▃▂█▌ ▃▄▃ ▃ ▃▃ ▁▃▃▁ ▗▃▃▖ ▃█▙▕█▙▃▖ ▁▃▃▂ ▕█▍ ▃▃▂▃ ▃▃▃▃ ▃ ▂▃ ▕█▙▃▃ ▃▃▃ ▃▃▃ ▃ ▃▃ ▃ ▃▃▃▂ ▁▃▃▐█▏▁▃▃▂ ▂▃▂▃
█▊ █▛▔█▍▟█▄█▙ ▗█▛▀▜█▕█▍ █▌▐█▏▟▛▀▀▘███▀ ▐█▀▟█▀▀█▌ ▜▇▛▘ ▟▊▕█▍ █▌▐█▀▜█▀▜▉▕█▀▀▜▊▗████▎▟▛▀▜█▎ ▇▛▀▜█ ▜▙▗█▘▗██▟█▎▟█▀▘ ▜█▀▐█▀▜▉▗██▄█▖ ▐█▕█▛▀▜█ ▀██▘ ▜▙▗█▘ ▐█▀▀█▋▟█▀▘█▛▀▜█ ▜▋▟██▃█▘▐█▀▜█ ▗█▀▀█▉▗█▀▀█▋▟▛▀▜█
▕█▌ ▐█▎▐█▏▜█▄▟▖ ▐█▙▄█▋▕█▙▅█▏▟▊ ▜▙▄▄▕█▛█▄ ▗█ ▜█▅▅█▘▄█▀█▖ █▌▕█▅▟█ ▟▊ ▟▊ ▟▊▗█▅▅█▘▝█▄▄▅▔█▙▄▟▉ ▜▙▄▟▛ ▝█▛▘ ▝█▄▄▅ █▌ ▟▊ ▟▊ █▋▝█▙▄▅▔ ▟▉▐█▙▄█▊▗▟█▄▄ ▕█▛▘ ▟█▅▅█▘█▋ ▕█▙▄▟▛ ▐█▛ ▜█▘ ▟█ ▟▊ ▝█▅▄█▋▝█▅▅█▘▜█▄▟█
▔ ▔ ▔ ▔▔▔ ▔▔▔█▍ ▔▔ ▔▔ ▔▔▔ ▔ ▔▔ ▔▔ ▔▔▔ ▔ ▔▔ ▐█▏ ▔▔ ▔▔ ▔▔ ▔▔▟▊▔▔▔ ▔▔▔ ▔▔▔▔ ▔▔▔ ▔ ▔▔▔ ▔ ▔▔ ▔▔ ▔ ▔▔ ▔▔ ▔▔▔▔▔▔▔▔▔▔ ▟▛ ▔▔▔▔ ▔ ▔▔▔ ▔ ▔ ▔▔ ▔▔ ▔▔▔▔ ▔▔ ▅▅▃█▋
▆■■▇▆■▆▏■▇▍ ▗▆▖ ▆▇▏ ▅▉▀▇▏ ▅▆ ■▇▌ ▗ ■▇▊ ▆▇ ▆▇ ■▆▊
▀ ▐█▋ ▝▘▐█▍▃▄▂ ▁▃▄▃ ▂▄▄▂▃ ▁▂▖ ▁▃▖ ▁█▏ ▃▄▄▁ ▜█▏▗▄▃ ▄█▙▃ ▃▄▄▂ ▗▄▄▖▗▄▃ ▂▙ ▁▂▖ ▁▃▖ ▂▃▁▃▄▁▂▄▃ ▂▃▂▄▃ ▂▄▄▂ ▁▃▄▐█▌ ▂▄▄▃ ▄▃▃ ▃▄ ▁▃▄▃ ▁▃▂▄▃ ▄█▄▖ █▉▂▄▃ ▃▄▃▁ ██ ▂▄▄▃ ▗▄▃▄▃▗▃▄▖ ▃▄ ██▃▄▃ ▁▃▂▄▃ ▃▄▄▂ ▃▄▄ ▃▄▃ ▃▃▁▂▖▂▄▃ ▃▄▃█▉ ▂▄▄▃ ▂▄▄▃▂
▐█▋ ▐█▛▔▜█▏▗█▌▁█▙ ▟█▘ ██ ▐█▋ ▐█▌ ▜█▎▕█▛ ▝▀ ██▃▟▀ ▐█▋ ▗█▛ ▝█▋ ▝█▙▟▀ ▔██ ▐█▋ ▐█▌ ▜█▎▔█▉▔▐█▌ ▜█▎▔▜█▏▟█▁▁█▋▗█▛ ▐█▌ ▟█ ██ ▝█▌ ▟▘▗█▌▁██ ▜█▛▔▀ ▜█▎ █▉▔▐█▋ ▟▉▁▐█▖ ██ ▝▀▘▂█▊ ▝▔▟█▀ ▝█▌ ▟▘ ██▔ ██ ▜█▛▔▀▗█▛ ▝█▋ █▉ ▐█▋ ▟ ▕█▛▔▐█▌ ▟█ ▔█▉ ▟█▘ ▜█▏▗█▎ ▜█
▐█▋ ▐█▍ ▟█▏▜█▍▔▔▔ ██ ██ ▕█▋ ▐█▌ ▜█▎▐█▋ ██▀█▙ ▕█▋ ▐█▌ ▕█▉ ▟▜█▖ ▜█ ▕█▋ ▐█▌ ▜█▎ █▉ ▐█▌ ▜█▎ ▟█▎██▔▔▔▔▐█▌ ▐█▌ █▉ ▟█▎ ▜█▅▘ ▝█▌▔▔▔ ▐█▌ ▜█▏ █▊ ▐█▋▕█▉▔▔▔▔ ██ ▗▇▛▔█▉ ▟█▘ ▜█▅▌ ██ ██▏▐█▌ ▐█▌ ▕█▉ ▝█▙▛▝█▄▍ ▕█▋ ▐█▌ █▉ █▉ ██ ▟█▍▝█▙▄█▀
■█■▖ ▟█▙ ■█▎ ▀■▅■▀ ▝▜▙■██ ▜█■■█■ ▟█■ ▀▜▅■▀▗██▏▝█■▖ ■█▊▖ ▀■▄▟▀▘▗■▌▐██■ ▟█▏ ▜█■■█■ ■█▎▗█▉▖■█▙ ▟█■▅█▀ ▝▀■▅■▘ ▀█▅■█■ ▝▜■▅▛▘ ▜▛ ▀■▅■▀ ▟█▙ ▝█▅■▗█▉ ▐█■ ▝▜■▅■▘ ▗██▖▝█■■▜▉▖■█▙■■▏ ▜▛ ▜▀■▅▛▘ ▟█▙ ▀■▄▟▀▘ ▜█▏ ▜▛ ■█▊ ■█▙ ▝▜▅■█▉ ▝▀▙▅■▀ ▝█▆▆▅▅
██ ▗▄ █▛ ▟█▎ ▗▖ ▛ ▇▌ ▔█
▆▆▆▆▆▆▆▆▐▇▋ ▐█▌ ▕▇▋ ▗▇█▀▍ ▜█▎ ▟█▏ ▗▅▏ ▇▇▏ ▕▇▊ ▇▇▏ ▇▊
▔█▉ ▐█▙▅▆▆▅ ▄▆■▇▆▖ ▗▅▆▆▅▆▌ ▗▆▏ ▕▆▆ ▗▆▖ ▗▅▆▇▆▖▐█▋ ▗▆■ ▗▆█▆▆ ▄▆▇▇▆▄ ■▆▅ ▗▆▆ ▆▆▆▏ ▆▆ ▗▆▍ ▆▆▄▆▆▅▃▅▇▆▖ ▗▆▄▆▇▆▖ ▅▆■▆▅ ▄▆▆▆▟█▏ ▄▆▇▇▆▄ ▆▆ ▆▆ ▗▆■▇▆▄ ▗▆▃▅▆▏ ▗██▆▆▏██▄▆▆▆▖ ▁▅▆■▆▅ ▕█▊ ▗▆■▇▆▅ ▕▆▆▆▆▆▋■▆▖ ▆▆ ▜█▄▆▇▆▖ ▆▆▃▅▆ ▄▆▇▇▆▖ ▆▆ ▆▆▖ ▗▆▏▗▆▄▅▆▆▖ ▅▆▇▅█▊ ▅▆▇▆▅▖ ▗▅▆▆▅▆
█▉ ▐█▋ ▜█▏▗█▙▄▄██▏ ██▔ ▐█▋ ▜█▏ ▕█▊ ▐█▍▕█▉ ▔▐█▊▟█▀ ▜█▍ ▐█▌ ▜█▍ ▝█▇█▛ ▜█▎ █▊ ▝█▍ ██▔ ▜█▌ ▕█▊ ▝█▍ ▜█▏▟█▄▄▟█▋▗█▛ ▜█▏ ▗█▌ ▜█▍▝█▙ ▟█▘▐█▙▄▄▟█▎▝█▛▔▔ ██▏ ██▏ ▐█▋ ██▄▄▟█▋ ▕█▊ ▃▄▄▟█▍ ▅█▀ ██ ▗█▘ ▜█▏ ▝█▉ ██▀▔▔▗█▍ ▜█▎▝█▌▗█▜▙▕█▛ ▜█▍ ▔█▉ ▟█▘ █▊ ▟█▘ ██ ██▔ ▐█
█▉ ▐█▋ ▜█▏▝█▋▔▔▔▔ ██▁ ▐█▋ ▜█▎ ▕█▊ ▐█▍▕█▉ ▁▐██▀█▙▖ ▟█▍ ▐█▙ ▟█▍ ▗▇▛█▙ ▜█▏ █▉ ▟█▍ ██▏ ▐█▍ █▊ ▐█▍ ▁██▏▜█▔▔▔▔▔▐█▌ ▟█▏ ▝█▌ ▟█▍ ▝█▙█▘ ▐█▙▔▔▔▔ ▝█▍ ▜█▏ ██▏ ▐█▊ ██▔▔▔▔▔ ▕█▊ ▟█▔▔▐█▍ ▄█▛▘ ▝█▙█▛ ██▏ ▗█▉ ▜█▏ ▝█▌ ▟█▎ ▜██▍ ███▏ ▜█▍ █▉ ▜█▖ ▁█▉ ▜█▖ ██ ██▂▁▂█
█▉ ▐▜▋ ▝█▏ ▝▀█▇■▀ ▝▀█▀▜█▋ ▝▜█▛▀█▊ ▝█▍ ▝▀▜■▛▘▕▜▋ ▝▜■ ▝█▍ ▝▀▇▇▀▀ ■■▀ ▝▜■ ▟█▏ ▝▜█▀▀■▍ ▜▜ ▝█▘ ■▊ ▟█▛■█▀▘ ▀▜■■▀▘ ▀▜█▀▜█▏ ▀▜▇▇▀▘ ▝■▀ ▝▀▜▇■▀▏▝■▍ ▝▜█■▏▝▛▏ ▕▜▋ ▔▀▜▇■▀▘ ▕■▊ ▝▜■■▀█▍▐█▜■■▀▋ ▜█▛ ▀▛▀■█▀ ▝▜▏ ▀▜▇■▀▘ ▕▀▀ ▝■▘ ▝█▎ ▀▉ ▝▀█▛▀▛▊ ▀▜■█▀▘ ▝▀▀▀▜█
▐█▌ ▆▆█▛ ▝█▍ ██ ▐▇▆▆█▛
▁▃▄▅▇▖▟▊ ▗▅▖ ▗▆▎ ▗▇▛ ▄ ▄▄ ▁▁ ▐█▎ ▕▇▌ ▗▄ ▄▄
▀▜█▍▔ ▟▊▁▃▁ ▃▃ ▃▃▃▃ ▄ ▂▁▐█▏ ▃▃ ▐█▎ ▃▂ ▟▊▃▁▁▃▃ ▁▃ ▗▄ ▕█▎▃▃ ▂ ▃▃▗▄▂ ▁ ▄▂▃▁ ▃▃▁ ▁▃▟▉ ▁▃▃ ▃▂ ▃▃ ▂▃▂ ▂ ▃▄ ██▄▐█▏▂▃ ▂▃▃ ▕█▍ ▁▃▃ ▁▁▂▃▃▃▃ ▃▂ ▜▉▃▂ ▁▂ ▄▄ ▃▃▁▂▃ ▃ ▗▄▂▃ ▂ ▁▃▟▉ ▁▃▃ ▁▃▂▃
▐█▍ ███▜█ ▟▛▜▊ ▟█▀█▋▐█ █▊▐█▏▟▛█▋▐█▄▆█▀ ■█▛▀▚█▀▜▙▝█▙█▘ ▐█▎█▌▐█▎█▋██▋▟█▋▐█▛▜█▏▟▛▜▉▗█▀█▉ ▕█▀▜█▝█▖▗█▛▟▛▜█▐██▛▔ ■█▊▀▐██▛█▌▗█▀█▎ ▕█▌▟▛▀█▌ ▀▀▜█▛▜█▎▗█▛ ▜█▛█▌▜██▀▔▟▛▀█▟█▏▐█▋ ▟▛▐█▎▇█▊ ▗█▀█▉▕█▀▜█▕█▀██
▐█▍ ██▘▐█▐█▅▛▘ █▉ █▋▜█ █▋▐█▕█▍▐▂▐██▉▁ ▟▊ ▐█ ▐█▏▟█▌ ▐█▎█▌▐█▏██▘██▛█▊▐█▌▐█▎█▙▛▘▜█ █▊ ▐█▏▐█▏▜▙▟▛ █▙█▘▐█▘ █▊ ▐█▛ ▟▊█▙▇▀ ▕█▍▄▇▀█▊ ▟█▘ ▜▙█▛ ▜█ █▊▜█▘ ▕█▍▕█▍█▙█▛█▅█▏▐██▘█▉ ▜█ █▉▐█▏▐█▐█ ▟█
▐█▍ ▜▊ ▐█ ▜▙▅▉ ▝█▆█▋▝█▅█▘▐█▏▜▙▟▀▐█▛▀█▆ ▜▊ ▝█▄▟▛▗█▀█▖ ▐█▏▜▙▟▛ ▝▛ ██▏█▊▕██▟▛ ▜▙▅█▝█▅█▉ ▕█▙▟▛ ▐██▏ ▜▙▄█▐█▎ █▊ ▐█▎ █▌▝█▄█▍ ▕█▌█▙▟▜█▗▇█▅▆▇ █▉ ▟█▙█▌▟█ ▜▙▟▛ ▐█▉ ▜█▌ ▐█▋ █▉ ▝█▅█▉▕█▙▟▛▕█▆▛█
▔▔ ▔▔ ▔▔ ▔▟▋ ▔▔▔ ▔ ▔▔ ▔ ▔ ▔▔ ▔▔ ▔ ▔▔ ▗▟▛ ▔▔ ▔▘ ▔▔▐█▎▔ ▔▔ ▔▔▔ ▔▔ ▔▔ ▔▔ ▔ ▔▔ ▔ ▔▔ ▔▔▔▔ ▔ ▔▔▔ ▕█▍ ▔▔▔▔ ▔ ▔▔ ▔▔ ▔▔ ▀▘ ▔▔▔ ▔▔ ▗▅▄█
▗■ ▅▅ ▅▖▐▛ ▃ ▜▌ ▄▀▜ ▗▖ ▇ ▗▌ ▇▘ ▕▇ ▇
▉ ▟ ▁ ▁ ▁ ▁ ▔ ▁ ▛ ▁ ▟▘ ▁ ▝▔ ▁ ▁ ▁ ▗ ▁ ▁▟▘ ▁ ▁ ▁ ▁ ▁ ▗▖ ▛ ▁ ▗▛ ▂ ▁ ▁ ▟▘▁ ▁ ▁ ▁ ▁ ▁▟▘ ▁ ▁
▟▘ ▗▙▝▜▋ ▅▚▛ ▄▀▔█▘■█▘▗▛ ▝█▘ ▞▔▀ ▟▎▁▛▏ ▜▛▔▗▛▔▉ ▀▙▖▀▘ ▝▉ ▝█ ▗▛ ▀█▖▚▊▞▜▋ ▐▛▔▇ ▗▞▃▋▗▅▀▐▛ ▄▀▔▊ ▐▛ ▟▎▗▀▟▘▝▉▞▀ ▕▛▘ ▟▍▀▜▍▗▞▚▛ ▟ ▖▀▜▘▕▛▀▛▘▝▜▎▟▏ ▗▋▀▐▋▝▜▎▀▏▆▘▜▍ ▜▘ ▞ ▐▌▝█▍▀█▏ ▗▅▀▐▛ ▄▀▔▊ ▆▘▟▎
▗▛ ▗▛▔ ▟ ▟▘▔ ▟▘▂▟▌ ▗▘▖█▚ ▟▘ ▟▏▁ ▗▀▜▔ ▟▏▐▛ ▟▘▁▗▜▖▁ ▟▘ ▟▘▖█▂ ▟▘ ▟▘▗▛▁ ▟ ▗▛▕▊▔▁▕▛ ▄█▂ ▐▛ ▟▘ ▟▘▗▘▗▛▔ ▟▘ ▟▚▖▗▛ ▗▛ ▉▔▁ ▟▘▃▟▁▅▛▁▁▅▘ ▖ ▟▎▘ ▕▉ ▗▛ ▗▛ ▟▘▗▛ ▗▛▗▟▎▁▞ ▗▛ ▟▘ ▕▛ ▄█▂▐▛ ▟▘▝▙■▀
▝▀▀ ▝ ▝▀ ▝▀▔ ▝▀▔▉ ▀▔ ▀▔ ▀▔ ▝▀▔ ▀ ▀ ▗▌ ▀▀▔ ▀▔ ▀▘ ▗▛ ▀▔▝▀▔ ▘ ▝▘ ▝▀ ▟▀▀▔ ▀▀▔ ▀▘ ▀▔ ▀▀▔ ▀▀ ▀▀ ▘ ▀▔ ▀ ▝▘ ▀▀▔ ▀▘ ▀▔▝▀ ▘▔▀▀▔ ▟▘ ▀▀▔ ▝ ▝▀▘ ▝▀▔▝▀▔ ▀ ▀▔ ▀▘ ▀▔ ▀▀▔ ▃■▅▂
▁▟▌ ▅▄▞ ▗▃▞ ▃▊ ▗▄▝▔ ▝▙▂▃▛
▅■■▅■■▅ ▇▌ ▕▅ ▐▇ ▅▀▀▎ ▅▖ ▐▇ ▐▇ ▜▋ ▇▌ ▇▌
▘ ▐▉ ▘ █▁▃▂ ▂▃▂ ▁▃▂▂ ▂▂ ▂ ▂ ▁▂▃ ▟▌ ▂▂ ▁▟▌▁ ▂▃▂ ▁▃ ▂▂ ▂▃ ▂▃ ▁ ▂▂▁▃▂ ▂▂ ▂▂▁▂ ▁▂▃ ▂▃▟▌ ▂▃▁ ▂▃ ▁▖ ▂▃ ▂▁▁▂ ▁▟▍▁ ▟▌▂▃ ▁▃▂ ▟▎ ▂▃▂ ▂▂▂▂▂▂▁ ▁ █▁▃ ▂▃▁▂ ▂▃▂ ▁▃ ▁ ▂ ▃▁▂▃ ▁▂▃█▏ ▁▂▂ ▂▃▂
▟▌ ▐▛▔▔█▏▗▇▔▃▛ ▟▘ ▟▌ ▟▋ █ ▟▍ ▟▘ ▝▎ █▂▞▘ ▕█▔▔▟▘ ▝▙ ▜▙▞▀ ▐▊ ▐▊ █▎ ▟▛▔▐▉▔▔█▎ ▟▛▔▐▉ ▟▀▂▟▘▗▛▔ █▏ ▗▛▔ ▜▌ ▜▎ ▟▘▗▛▁▟▋ ▟▍▔▘ ▐▊▔▔ █▔▔▜▌ ▟▘▂▟▘ ▐▉ ▗▛▔▕█ ▕▘▁▟▀ ▔█▏▕▛ ▐▛▔▝█ ▕█▔▀ ▇▘ ▐▙ ▜▋ ▟▌ ▟▘ █▀▔▜▋ ▟▀ ▐▋ ▟▛▔▔█▎▗▛▔ █
▕█▏ ▟▎ ▐▊ ▜▋▔▔ ▐▊ ▁█ █▎ ▟▋ ▕█ ▐▊ ▐▋▝▙ ▐▋ ▐▉ ▗▛ ▁▄▜▌ ▟▍ ▟▍ ▐▉ █▏ ▟▌ ▕▉ █▏ ▟▛▐█▔▔ █▍ ▐▋ ▜▌ ▟▘ ▝▙▞▘ █▎▔ ▕█ ▟▍ ▗▋ █▏▐█▔▔ ▟▍ █▍ ▟▋ ▄▛▘▗ ▝▋▞ ▟▎ ▗▛ ▟▌ ▐▊ ▐▛ ▕▉▟▀▊▟▘ ▐▉ ▟▎ ▐▉ ▟▎ █▎ █▏▟▌ ▐▊
▀▀▘ ▀ ▝▀ ▀▀▀▔ ▀▀▜▋ ▝▀▀▝▀ ▝▀ ▀▀▀▔ ▝▘ ▝▀ ▟▏ ▝▀■▀ ▝▀ ▀▘ ▗▛ ▝▀▀▝▀ ▕▀ ▀▘ ▝▀ ▐▛■▀▔ ▝▀▀▘ ▝▀▀▝▀ ▀■▀▘ ▝▀ ▝▀▀▀ ▝▘ ▀▀▘ ▀▘ ▀▘ ▀▀▀▘ ▀▘ ▝▀▀▝▀ ▀▀▀▀▀ ▕▛ ▀■▀▘ ▀ ▝▀▀▀ ▀ ▀ ▝▘ ▀▘ ▀▀▔▀▘ ▔▀■▀▔ ▝▀▀█▘
▃█▍ ▕▅▄▘ ▗▀ ▗▟▙ ▄▛ ▕▅▄■▘
▟▇▇█▊ ▁▁▁ ▁ ▁ ▁▁ ▁▂ ▁▁ ▁▁ ▁ ▁▁▁ ▁ ▁▁ ▁ ▁▁ ▁ ▁ ▁ ▁▁ ▂
▀▜▛▔▔▇▏▟▎██▀▘ ▅█▙ ▟▏ ▜▍▇ ▅██▌█ ▟▌ ▟▛▀▘▅█▙ ▇▄ ▟▘ ▅▆▇■▗▍ ▐▋▐▙ ▗█▐█▀█▐██▀▕▆█▜█▏ ▟█▙ ▖ ▟▘██▀▘▆█▜▌ ▟███ ▊ █▐█■▀ ▐▌ ▗█▏■██▍▕▇▖▗▍ ▗▛▜▌▅█▜▊▗▇█▖▐▋ ▇▖▆▁ ▟▏ ▗▇█▜█▏▟█▙ ▗▛▜▋
▟▋ █▄█▏█▆▖ ▕▊▔█▏█ ▐▍▉▐▛ ▝▘█▟▘ █▅▆▕▊ ▜▎▝██▋ ▕▋ ▟▎ ▐▋▟█▄██▐▙▆▛▐█▆▎ ▉ ▟▎ ▐▌ █▐█▃▛▕█▆▖▕█▄█▘ █▎ ▕▙▅▉▐▙▆▎ ▐▍ ▗▉█▍ ▟▀ ▝▜▛ ▜██▅▜▙▟▘▟▎ ▊▟▋▟▎ ▜▌██▅█ ▉ ▟▐▋ ▜▏▉ ▅▙
▟▋ █▔▜▎█▅▅▖ ▕███ ▜▆▅█▕█▝▙▄▄▖██▅ ▉▔ █▆▛ ▟▜█▎ ▐▅▉ ▝▇▅▟▘▟▛▀▘▜▕▊▔ ▐█▅▅▐█▅▆▛ ▐█▆▛ ▜█ ▕█▅▅▖▟█▅ █▎ ▐▊▔▉▐█▅▅ ▐▙▆▅▟▛▜▌▟▙▆▆▏ ▟▘ ▟▙▅▘▐█▙▖▝▇▇▘▝███▆█▐▋▝▜█ ▐█▅▇▛▕█▆▛▕█▆██
▔▔ ▔ ▝▘▔▔▔ ▔▔▔ ▔▔▔ ▔ ▔▔▔ ▔ ▔ ▔ ▔ ▔ ▔▔ ▔▔▔ ▔ ▔ ▔ ▔▔▔ ▔▔▔ ▔▔ ▔ ▔▔▔ ▔▔▔ ▔ ▔ ▀ ▔▔▔ ▔▔▔▔ ▔▔▔▔▔ ▔ ▔▔ ▔▔ ▔▔ ▔ ▔▔ ▔ ▀ ▔▔▔ ▔▔ ▔▔▟
Usage: title_creator
Create a title
optional arguments:
display:
--text=Hello World!
text to render (default Hello World!)
--characters= !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}
text to render, ignored when loading a map (default !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|})
--resolution=16
text to render, ignored when loading a map (default 16)
--aspect=0.5
character height to width (default 0.5)
--font=/System/Library/Fonts/Monaco.ttf
filename of the ttf/otf font (default /System/Library/Fonts/Helvetica.ttc)
--size=12
font size in points (default 25)
--max-width=None
maximum width to render
--mode=20
render mode (default 20)
--allow-inverted=false
use inverted characters, ignored when writing to file
input/output:
--load=None
load saved character map
--save=None
save character map
--output=None
save output to file
title_creator -font /Library/Fonts/CooperBlackStd.otf -resolution 64 -allow-inverted=false -text "Numbers" -characters="1234567890#%$^*.,-+<> "
,,,,, ,,,,,
<%%%%%%0, %%%%%%%> ,,#%%%%>
%%%%%%%%% %%%0 %%%%%%%
%%%%%%%%%%, %%%> ,,+4##% ,,+##%% ,,+#% ,4#%%, ,4#%%, %%%%% ,+#%%, ,+#%%%+, ,,+##% ,4%%, ,4%%%4#%,
%%%%%%%%%%%%#%%% 70%%%%% %%%%%%% #%%%%%%0%%%%%%%%%%%%%%%% %%%%%%%%%%%%%, ,%%%0770%%%, %%%%%%%%%%%%% 0%%%%0%%%%,
%%%%7%%%%%%%%%%% %%%%% 4%%%%% %%%%%%7 3%%%%%# %%%%%% %%%%%7 7%%%%%% 2%%%%%,,#%%%% 3%%%%%0%%%%# %%%%%%, 77
%%%1 %%%%%%%%% %%%%% 4%%%%% 4%%%%% %%%%%7 %%%%%% %%%%% 3%%%%% %%%%%0%%%%%%# 4%%%%% 7%%%%%%%%,
%%%8 %%%%%%% %%%%%, 8%%%%% 4%%%%% %%%%%1 %%%%%% %%%%%, ,%%%%# %%%%%0, ,,, 4%%%%% ,%,7%%%%%%%,
<%%%%%% 7%%%% %%%%%%%%%%%%%%% ,%%%%%%, #%%%%%% ,%%%%%%, ,%%%%%%,,%%%%7 %%%%%%%%%%%7 <%%%%%%%% 3%%%,#%%%%%
7#%%%#7 7%# 7#%%#7 %%##7 7#%%%##7 9#%%%#7 79#%%## 7#%%%#7 79%%%#77 7#%%%%##7 7###%%%#7
I like starting my programs with a nice title. So why another? I wanted to see if go could improve the performance over python. Was it fast? Yes. Much
- It takes the text and renders it to an image using the font and the size
- It scales the image to no bigger than max-width.
- It scales the image to the inverse of aspect so that when drawn to screen it matches the original image.
- It crops the image into chucks of resolution x resolution and puts it into a 4D array.
- It then takes the characters and maps each one to a 2D array of brightness values, and optionally saves or loads this
- It then goes through 2 dimensions of the 4D array and compares ,using the mode, to see which is the best match, and optionally allow-inverted versions of the character
- It draws each matching character to screen or outputs to file
- Mode 0 (default) : Mean Squared Error
- Mode 1 : Sum of absolute differences in matrix
- Mode 2-4 : Absolute differences in matrix with neighbouring values
- Mode 10-23: Contrasted values
Add more font types
- Some fonts it does not render some characters, for example, the letter 'n' might not appear when using myfont.ttf??
- Unicode characters beyond 1byte (255 or \u00FF) do not render, this matters for title and for characters used in the
character map, but will write to screen
- Workaround: Use the python script to create json maps and use those in the go program. It will allow you to use those character to render but still not be in the title, for that stick the python version
- Does not work with all fonts.
xattr -d com.apple.quarantine /path/to/title_creator
chmod a+x /path/to/title_creator
Windows only renders block characters aligned in the console and no where else
Make sure you are using a fixed width font
Choose a font that supports the character you choose the render with
Create a title and save/load the character map created
- Fixed bad ascii code in default character set
- Support multiline
- Better cropping
- Inverted mode
- New render modes
- Code cleanup
- Printing first character only in json key, this allows for duplicate keys, example ascii-art.json
/----\ /--------| /-----\ ---------| /---------|
---- ------ -----| -| / | \\ | -\ |
/-- -/ \- | | | \ -/ | | | /
/- -/ \ | / / \--- | | | |
/ |/ \| | | | -----\ --------\ /----\ /---- -----\ ----\ ----- ------ -----\ ------ ------ -------- / | /---- /-------\ /------\/ |
/ / \-/ / |-- \\ /--- ---- -\/-- -\/- -/-- \/-- \/- -\ / | /-- \/-- -\ /--- -\ /-- ----| -\ | / /-- | --- ---\ -\ /-- ---- |/
/ | | -----| | // / | |\/ | ---| - \| --/ |- \| | | / \ \| -- \| \ | | // / / | / | /- - / /- // | | // -/ | |
| | / / | / /- / / -/ | / \ / | |/ \ / / | /| | /| | | | | / /- | | / | //- // ----/ / |/ /| / /- |/ | /
| | | / / / | / --- --/ / | \---/ / | \---/ / / | | | / | | / / | | ----/ / |/ |\ / | ---- --/ | / / |
| | /\ / | | |/ / ------- | / | |/ / / | | | | | / | / | | | - \ | -------/ | | | /
\| | // - | / / | \ \ /\ | | / | | / / | / | / -/ / | | | /\ / | \ \ | | /\ | | / |
\- -\ /---/ / | | | \ \\ /-- / | | | / |\ /-- / | / /- // | | \ \ -- / | / \ \ \ \ -- -/ \ \ // |
\- ---------- | / \- ---/ \- ---- --/ | | / | \ --/ / / ----- --/ \ ----/ \- ---- --/ /| | \ ----/ \- -------/ \- ------ ---/
----------- ------ ------/ \--------/ -----/ \-----/ \------ / |/ | /-------- \------- \--------- \-----/ \------- \--------- -------/ ------/
/----\ / -/ / |
| \\ // -/ / |
\--- -- ---- /--- ---\
\-- \------------