代码高尔夫:1x1黑色像素
-
05-10-2019 - |
题
最近,我使用我喜欢的图像编辑器制作了1x1黑色像素(当您想便宜地用HTML绘制实心盒时,它可能会派上用场)。即使我使其成为单色PNG,但它还是120个字节!我的意思是,这很陡。 120字节。 对于一个像素. 。然后,我将其转换为GIF,将大小降低到43个字节。好多了,但是...
挑战
最短的图像文件或程序 是 或者 生成 1x1黑色像素。提交可能是:
- 代表1x1黑色像素的图像文件。选择的格式必须能够代表比1x1更大的图像,并且不能是临时的(也就是说,它不能是您刚好为Code Golf组成的图像格式)。图像文件将按字节计数对。
- 生成此类图像文件的程序。程序将按角色数进行排名,就像代码高尔夫的往常一样。
只要答案属于这两个类别之一,任何东西都是公平的游戏。
另外,对于图像文件,请在十六进制或逃脱中指定它们,而不是使用外部图像主机:-)
解决方案
其他提示
数据URI, ,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艺术 格式:
·
徽标 /乌龟基本,12个字节
PENDOWN FD 1
我不记得是否 pendown
可以缩短到 pd
是否,如果是这样,则将其降低到7个字节。
bash:31个字符
从InterWebs下载单个像素GIF的脚本比单像素本身少。
wget http://tinyurl.com/2w97dyo
Python+PIL 68个字符
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位整数(Little Endian)组成:
位映射:
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>
drracket: :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","."}
在寻找Wikipedia文章来链接它时,我发现 XPM2,26字节, ,但是我在这里无法通过任何程序打开它。
! XPM2
1 1 1 1
. c #000
.
rebmu: :16个字符
en'PNGmkIM![1x1]
如果您希望它根据您输入的参数保存到文件,则在程序中添加了三个字符:
rebmu/args [wrAen'PNGmkIM![1x1]] %my-black-pixel.png
该程序是用于以下rebol的速记,为了清楚起见,括号添加了:
write a (encode 'png (make image! [1x1]))
<div style="height: 0; width: 1px; border-top: 1px solid #000">
但是定位将需要更多。