PHP, 153 байта
Это будет работать, только если short_open_tag
настройка включена. Исходный код содержит непечатаемые символы, поэтому вместо этого используйте шестнадцатеричный дамп:
0000000: 3c3f 3d67 7a69 6e66 6c61 7465 2827 b329 <?=gzinflate('.)
0000010: 2e4b 5728 cb4c 2d77 caaf b0d5 3531 3000 .KW(.L-w....510.
0000020: 611d 0b08 5628 2e29 cacf 4eb5 5536 3030 a...V(.)..N.U600
0000030: b0b3 2948 2cc9 5048 b1f5 d535 35d6 3536 ..)H,.PH...55.56
0000040: b7d0 8152 c6a6 263a 8626 c6ba 8626 0660 ...R..&:.&...&.`
0000050: dac2 5cc7 14c8 b234 0452 510a 6999 3939 ..\....4.RQ.i.99
0000060: b6ca 6969 690a 2545 8979 c569 f945 b9b6 ..iii.%E.y.i.E..
0000070: 45f9 2589 25a9 1a06 9a0a fa14 990a 7415 E.%.%.........t.
0000080: a6a9 8646 949a 9b5e 945a 8969 ae2e cc60 ...F...^.Z.i...`
0000090: 7d60 88d9 0100 2729 3b }`....');
Распакованные данные выглядят так (добавлены разрывы строк для удобочитаемости):
<svg viewBox=-400-400,800,800 stroke=#000>
<path d=M-53-378,53-378,354,143-140,143-87,50,191,50Z fill=#fff transform=rotate(0) />
<path d=M-53-378,53-378,354,143-140,143-87,50,191,50Z fill=#000 transform=rotate(120) />
<path d=M-53-378,53-378,354,143-140,143-87,50,191,50Z fill=grey transform=rotate(-120) />
</svg>
Хотя данные SVG не совсем корректны, PHP обслуживает их text/html
по умолчанию. Без объявления doctype документ обрабатывается в режиме причуд, что очень простительно.
Чтобы улучшить сжатие, я разбил изображение на три части в форме «7», которые можно нарисовать, используя почти идентичные <path>
элементы. Полученное изображение расширится, чтобы заполнить область просмотра. Вот снимок экрана из окна 500 × 500 пикселей: