Код Golf: 1x1 черный пиксель
-
05-10-2019 - |
Вопрос
Недавно я использовал свой любимый редактор изображений, чтобы сделать черный пиксель 1x1 (который может пригодиться, когда вы хотите сделать сплошные ящики в HTML дешево). Хотя я сделал это монохромным PNG, он вышел на 120 байтов! Я имею в виду, это довольно крутой. 120 байтов. Для одного пикселя. Отказ Затем я преобразовал его в GIF, который отбросил размер до 43 байтов. Намного лучше, но все же ...
Испытание
Кратчайший файл изображения или программа, которая является или генерирует черный пиксель 1x1. Представление может быть:
- Файл изображения, который представляет черный пиксель 1x1. Выбранный формат должен иметь возможность представлять более крупные изображения, чем 1x1, и не может быть Ad-Hoc (то есть не может быть форматом изображения, который вы только что состоят для Golf Code). Файлы изображения будут ранжироваться за счет байта.
- Программа, которая генерирует такой файл изображения. Программы будут ранжироваться по количеству персонажа, как обычно в кодовом гольфе.
Пока ответ падает в одну из этих двух категорий, все, что является справедливой игрой.
Кроме того, для файлов изображений, пожалуйста, укажите их в шестнадцатеричном или выберете, а не используя хост внешнего изображения :-)
Решение
Другие советы
УРИ, 83 персонажей
data:image/gif;base64,R0lGODlhAQABAIAAAAAAAAAAACH5BAAAAAAALAAAAAABAAEAAAICTAEAOw==
Файл изображения: 10 байтов, в PGM формат:
P5 1 1 1\n\0
Чтобы создать его, в Python: 40 символов
open('b.pgm', 'w').write('P5 1 1 1\n\0')
Unicode Art. формат:
·
То Упл Формат - это черно-белый графический формат.
Двоичное представление одного черного пикселя потребуется 8 байтов, и писать его в файл с помощью C #, как выглядит:
File.WriteAllText("p.pbm", "P4 1 1 ÿ");
Логотип / черепаха Основные, 12 байтов
PENDOWN FD 1
Я не могу вспомнить, если pendown
можно сократить до pd
Или нет, если это так, это отбивает его до 7 байтов.
Bash: 31 символ
Сценарий для загрузки единого пикселя GIF из межвесов - меньше байтов, чем сам один пиксель ...
wget http://tinyurl.com/2w97dyo
Python + Pil 68 Chars
from PIL import Image
Image.fromstring("P",(1,1),"\0").save("B.gif")
PostScript, 29 байт. Не совсем «один пиксель», но это был один пиксель на моем экране предварительного просмотра.
0 0 moveto .5 0 lineto stroke
Python (W / Pil) (85 символов):
from PIL import Image
i=Image.new("P",(1,1))
i.putpixel((0,0),(0))
i.save("i.gif","GIF")
Старый формат изображения, который я использовал для использования: 4 байта
01 00 00 0C
Формат состоит из массива 16 битов целых чисел (маленький эндин):
Битовое отображение:
0-10: number of pixels to shade
10-11: control bits
12-15: VGA16 pidel color
Значения битов управления:
0: normal
1: end of line
3: end of file
SVG, 59 символов:
<svg><rect width="1" height="1" style="fill:#000;"/></svg>
Бездельно, в том числе DOCTYPE, он растет до 157 ...:
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg><rect width="1" height="1" style="fill:#000;"/></svg>
Дришка: 23 символа
#lang slideshow
(disk 1)
Я довольно поздно на эту вечеринку, но http://www.perlmonks.org/?node_id=7974. Имеет больше Общая Ответь, чем кто-нибудь размещен до сих пор:
## tinygif
## World's Smallest Gif
## 35 bytes, 43 if transparent
use strict;
my($RED,$GREEN,$BLUE,$GHOST,$CGI);
## Adjust the colors here, from 0-255
$RED = 255;
$GREEN = 0;
$BLUE = 0;
## Set $GHOST to 1 for a transparent gif, 0 for normal
$GHOST = 0;
## Set $CGI to 1 if writing to a web browser, 0 if not
$CGI = 0;
$CGI && printf "Content-Length: %d\nContent-Type: image/gif\n\n",
$GHOST?43:35;
printf "GIF89a\1\0\1\0%c\0\0%c%c%c\0\0\0%s,\0\0\0\0\1\0\1\0\0%c%c%c\1\0;",
144,$RED,$GREEN,$BLUE,$GHOST?pack("c8",33,249,4,5,16,0,0,0):"",2,2,4;
XPM, 57 байт:
/* XPM */
static char *_x_[] = {"1 1 1 1",".c #000","."}
При ищете статью Википедии, чтобы связать это, я нашел XPM2, 26 байтов, но я не мог открыть это с любой программой здесь.
! XPM2
1 1 1 1
. c #000
.
Регресс: 16 символов
en'PNGmkIM![1x1]
Если вы хотите, чтобы это сохранить файл на основе аргумента, который вы передаете, это добавляет еще несколько символов в программу:
rebmu/args [wrAen'PNGmkIM![1x1]] %my-black-pixel.png
Программа является сокращением для следующих ребо, скорректированные скобки, добавленные для ясности:
write a (encode 'png (make image! [1x1]))
<div style="height: 0; width: 1px; border-top: 1px solid #000">
Но позиционирование это займет больше.