30

最近,我用我最喜欢的图像编辑器制作了一个 1x1 黑色像素(当你想用 HTML 便宜地绘制实心框时,它可以派上用场)。尽管我把它做成了单色 PNG,但结果却是 120 字节!我的意思是,这有点陡峭。120 字节。 对于一个像素。然后我将其转换为 GIF,将大小降至 43 字节。好多了,但还是...

挑战

生成1x1 黑色像素的最短图像文件或程序。提交可能是:

  • 表示 1x1 黑色像素的图像文件。选择的格式必须能够表示大于 1x1 的图像,并且不能是临时的(也就是说,它不能是您为代码打高尔夫球而编造的图像格式)。图像文件将按字节数排序。
  • 生成此类图像文件的程序。程序将按字符数排名,就像在代码高尔夫中一样。

只要答案属于这两个类别之一,任何事情都是公平的游戏。

此外,对于图像文件,请以十六进制或转义符指定它们,而不是使用外部图像主机 :-)

4

17 回答 17

42

数据 URI,83 个字符

data:image/gif;base64,R0lGODlhAQABAIAAAAAAAAAAACH5BAAAAAAALAAAAAABAAEAAAICTAEAOw==
于 2010-05-29T01:06:12.237 回答
26

图片文件:10字节PGM格式:

P5 1 1 1\n\0

要创建它,在 Python 中:40 个字符

 open('b.pgm', 'w').write('P5 1 1 1\n\0')
于 2010-05-29T00:28:32.813 回答
22

Unicode 艺术格式:

·

于 2010-05-29T00:35:37.823 回答
14

WBMP,5 个字节:

00 00 01 01 00

无法想象更小的东西

于 2010-05-29T12:10:46.917 回答
13

PBM格式是一种黑白图形格式。

单个黑色像素的二进制表示将占用 8 个字节,使用 C# 将其写入文件如下所示:

File.WriteAllText("p.pbm", "P4 1 1 ÿ");
于 2010-05-29T00:42:08.720 回答
9

Logo / Turtle 基本款,12 字节

PENDOWN FD 1

我不记得是否pendown可以缩短为pd,如果可以,则将其缩短为 7 个字节。

于 2010-05-29T11:48:50.253 回答
6

重击:31 个字符

从互联网下载单个像素 gif 的脚本比单个像素本身的字节少......

wget http://tinyurl.com/2w97dyo
于 2010-05-29T04:28:30.550 回答
4

Python+PIL 68 个字符

from PIL import Image
Image.fromstring("P",(1,1),"\0").save("B.gif")
于 2010-05-29T22:20:19.077 回答
3

Python(带 PIL)(85 个字符):

from PIL import Image
i=Image.new("P",(1,1))
i.putpixel((0,0),(0))
i.save("i.gif","GIF")
于 2010-05-29T01:19:41.540 回答
3

后记,29 个字节。不是真正的“单像素”,但它是我预览屏幕上的单像素。

0 0 moveto .5 0 lineto stroke
于 2010-05-29T02:36:45.410 回答
2

我曾经使用的旧图像格式: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
于 2010-05-29T01:51:22.230 回答
2

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>
于 2010-05-29T22:45:31.647 回答
2

DrRacket:23 个字符

#lang slideshow
(disk 1)
于 2010-06-18T06:45:38.553 回答
2

我参加这个聚会已经很晚了,但是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;
于 2010-08-08T02:40:42.630 回答
1

XPM,57 字节

/* XPM */
static char *_x_[] = {"1 1 1 1",".c #000","."}

在查找 wikipedia 文章以链接它时,我找到了 XPM2, 26 bytes,但我无法使用此处的任何程序打开它。

! XPM2
1 1 1 1
. c #000
.
于 2010-05-29T00:49:33.787 回答
1

Rebmu:16个字符

en'PNGmkIM![1x1]

如果您希望它根据您传入的参数保存到文件中,则会向程序添加另外三个字符:

rebmu/args [wrAen'PNGmkIM![1x1]] %my-black-pixel.png

该程序是以下 Rebol 的简写,为清楚起见添加了括号:

write a (encode 'png (make image! [1x1]))
于 2010-06-17T12:54:10.050 回答
0
<div style="height: 0; width: 1px; border-top: 1px solid #000">

但是定位它需要更多。

于 2013-05-30T03:31:38.320 回答