| Bytes | Lang | Time | Link |
|---|---|---|---|
| 408 | uiua | 250908T004459Z | phidas |
| 370 | ZX Spectrum BASIC | 250907T193539Z | Neil |
| 295 | C gcc | 220503T130814Z | matteo_c |
| 1124 | PostScript | 220501T220052Z | bartysla |
uiua, 408 bytes unformatted, 410 bytes formatted
˜⨬∘⨬Blue White↯48_48⋯utf"?????????????????????????\0\0\08????\0\0\08????\0\0\08???\x07 ?\x03\0\08?\x07 ?\x03\0\08?\x07 ?\x03\0\08?\x07\0 \x03<\x0f\0?\x07\0 \x03<\x0f\0?\x07\0 \x03<\x0f\0?\x07<#\x03\0\x0e\08\x07<#\x03\0\x0e\08\x07<#\x03\0\x0e\08\x07 ?\x03\0\x0e\08\x07 ?\x03\0\x0e\08\x07 ?\x03<\x0f\08\0\0\0\0<\x0f\08\0\0\0\0<\x0f\08\0\0\0\0\0\0\08\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\00\x0f\0\0\0\0\0\00\x0f\0?\0\0\0\00\x0f\0?\0\0\0\0\0\x0e\0?\0\0\0\0\0\x0e\08\08\0\0\0\x0e\08\08\0\00\x0f\08\08\x07\00\x0f\0?\08\x07\00\x0f\0?\08\x07\0\0\0\0?\08?\x1f\0\0\0\0\08??\0\0\0\0\08??\0\0\0\0\08?????\08??????\08??????\08??????\x07\0??????\x07\0??????\x07\0???????\x078??????\x078??????\x078????????????????????????"⋕&sc
The format difference is due to the fact that utf (3 bytes) formats to utf₈ (4 bytes) In additon fmt adds rows as an operand to &sc. It needs &ims at the end to show the image if you are not in pad.
How i encoded it:
&frab "file.bmp"
↘⧻[66 77 54 27 0 0 0 0 0 0 54 0 0 0 40 0 0 0 48 0 0 0 48 0 0 0 1 0 24 0 0 0 0 0 0 27 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]#replace this with whatever preamble your bitmap has
⁅÷255
▽⍜⍉°¤=0◿3°⊡
°utf₈°⋯↯384_6⇌
Requires the file to be converted to a bitmap first.
ZX Spectrum BASIC, 370 bytes
(Sorry for the graphical listing but it's too long for me to retype.) Takes 1 for teal and 0 for black as the input. Explanation: The graphic is run-length encoded. Each line of the image is represented by a block of digits; the first digit is the number of times the line is repeated, the second is the number of pairs of runs in the block, then there are that many pairs of digits corresponding to transparent and coloured. Runs of over 9 pixels have to be encoded as multiple pairs, but this is still golfier than having exact length runs.
91 bytes for a miniature graphic:
(Listing includes unprintable characters, but you can tell what the bytes are because they've already been copied into the user-defined characters.) Takes 1 for teal and 0 for black as the input. Explanation: Writes data for four user-defined graphic characters which are then printed in a square.
C (gcc), 295 bytes
shorter version thanks to @ceilingcat
#define p putchar(v?-1:b
*s=L"\xcd=C=C=7;104;104;10100.+6100.+6100.+6.3+3++.-.3+3++.-.3+3++.-.3+310.3+310.30.10.30B+30B+\xcf.D.0.D.0.D.0+;+1+3+;+1+3+;+1+3.8+1.0.5.1.0.5.1.C.J6I7I=1O1O1L1O1O1L.R.R.\xdf";main(b,v,n){b%=2;for(v=printf("P6 48 48 255 ");*s;v=!v)for(n=*s++-40;n--;p*232))p*0),p*147);}
C (GCC), 318 bytes
#define p(x)putchar(v?255:b*x)main(b,v,n){unsigned char*s="\xcd=C=C=7;104;104;10100.+6100.+6100.+6.3+3++.-.3+3++.-.3+3++.-.3+310.3+310.30.10.30B+30B+\xcf.D.0.D.0.D.0+;+1+3+;+1+3+;+1+3.8+1.0.5.1.0.5.1.C.J6I7I=1O1O1L1O1O1L.R.R.\xdf";b%=2;for(v=printf("P6 %d %d 255 ",48,48);*s;v=!v)for(n=*s++-40;n--;p(232))p(0),p(147);}
Outputs a PPM image. The image is run-length encoded in the variable s.
The boolean input is given via the number of arguments (basically corresponds to argc % 2).
PostScript, 132 112 + 4 bytes
x{0 .58 .91 setrgbcolor}if
9 9 scale 16 16 false[1 0 0 1 0 0]<~s8S_ka8b3"J.ITILd2AV!!%`RKQ2ZJ`^/O&rW<~>imagemask
Uses an ASCII Base-85 string to encode a 16x16 bitmap.
Takes input from command line: gs -dx=true np-nsp.ps or gs -dx=false np-nsp.ps; +4 bytes for -dx=. Output is displayed.



