I had the same sort of idea, and just implemented it in Python using gmpy2 for the primality check. Here's a prime smiley face:
111010101111001000110101111111001001000010000
000000000000000000000000000000000000000000001
000000000000000001110111111100000000000000001
100000000000011110000000000011010000000000001
000000000011100000000000000000011100000000000
100000000100000000000000000000000011000000001
100000011000000000000000000000000000100000001
100000110000000001000000001000000000011000001
100000100000000001000000001000000000001100000
000001000000000001000000001000000000000100001
100010000000000001000000001000000000000010000
000010000000000001000000001000000000000010001
000010000000000001000000001000000000000010000
000010000000000000000000000000000000000010000
100010000001100000000000000000001100000010001
000001000000110000000000000000011000000100000
000000100000011000000000000000110000001100001
100000110000001111000000000111100000011000000
000000011000000001111111111100000000100000000
100000000100000000000000000000000011000000001
000000000011100000000000000000011100000000000
100000000000011110000000000011010000000000000
100000000000000001110111111100000000000000000
100000000000000000000000000000000000000000001
111011110010001011101100010110111111110011001
As a number, it's
418286130038247526051590581692998429049634527936177232676862400134230223310124567196900044669909574838414882468188159808593146618824409867113710174334769625185535031892647808338085451521099179358299885075661065903947563499117521951858387121272237585876050870984471996640946451287415573046990997289875221396633775785411121263373993999302553.
This took 487 random border attempts to find, which seems pretty small!
Note that efficient primality tests are probabilistic, so there's a small chance this isn't actually prime. I expect it's the same with the giraffe one in the link.
Edit: Here's the code (improved a bit over what made the picture above): https://gitlab.com/snippets/1694391