Skip to main content
2 of 4
added 14 characters in body

Befunge-98, 109 bytes (FUNGE / ANY)

:5%!2>j#4_;\$&\#;\:0`!#@_:::88*/88**-\88*/2%*442**+,:88*/:2/-88**-\1+:5%!2>j#4_;442**3k:4k,#;:55*%!2>j#4_;a,; 

Try it online!

Input (115 characters):

2022 1141 1134 935 2021 102 1141 1262 103 101 998 1141 1390 1639 997 102 1141 1646 1127 101 102 949 1134 935 2021 0 

Input is the integer version of a binary number with the format aaaaabbbbbb where aaaaa is a reversed map of the character to print (for example, the second row in the N is NN N, so the mask is 10011), and bbbbbb is the ascii character to print, minus 32.

I also created a befunge-98 program to create my inputs:

4k~44p34p24p14p04p v +1.+-**244g4%5\**88_@#`0:&::< 

Try it online!

Output (255 characters):

FFFFF U U N N GGG EEEEE F U U NN N G E FFFF U U N N N G GG EEEE F U U N NN G G E F UUU N N GGG EEEEE 

(255 - (115 + 109)) / 255 = 12% compression

Explanation:

:5%!2>j#4_;\$&\#;\:0`!#@_ Get input if it is available, else end program :::88*/88**-\88*/2%*442**+, Output the current input character (or a space, if the mask dictates so) :88*/:2/-88**- Throw away current mask bit \1+ Swap loop iterator to top of stack, increment it :5%!2>j#4_;442**3k:4k,#; If iterator % 5 == 0, print five spaces :55*%!2>j#4_;a,; If iterator % 25 == 0, print newline character 

This is probably pretty golfable; I've spent barely any time thinking about potential reductions.

Theoretically this can print any sequence of 5x5 ascii art.