30

最近、お気に入りの画像エディターを使用して 1x1 の黒いピクセルを作成しました (これは、HTML で塗りつぶされたボックスを安価に描画したい場合に便利です)。モノクロPNGにしたのに120バイトになってしまった!つまり、それはちょっと急です。120 バイト。 1 ピクセルの場合。次に、それを GIF に変換すると、サイズが 43 バイトに減少しました。はるかに優れていますが、それでも...

チャレンジ

1x1 の黒ピクセルを生成する、または生成する最短画像ファイルまたはプログラム。提出物は次のとおりです。

  • 1x1 の黒ピクセルを表すイメージ ファイル。選択する形式は、1x1 よりも大きな画像を表現できる必要があり、アドホックであってはなりません (つまり、コード ゴルフ用に作成したばかりの画像形式であってはなりません)。画像ファイルはバイト数でランク付けされます。
  • このような画像ファイルを生成するプログラム。プログラムは、通常のコード ゴルフと同様に、文字数によってランク付けされます。

回答がこれら 2 つのカテゴリのいずれかに該当する限り、すべてがフェア ゲームです。

また、画像ファイルの場合は、外部の画像ホストを使用するのではなく、16 進数またはエスケープで指定してください :-)

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

ロゴ/タートルベーシック、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

追記、29バイト。実際には「単一ピクセル」ではありませんが、プレビュー画面では単一ピクセルでした。

0 0 moveto .5 0 lineto stroke
于 2010-05-29T02:36:45.410 に答える
3

Python (w/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 に答える
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

I'm pretty late to this party, but http://www.perlmonks.org/?node_id=7974 has a more general answer than anyone's posted so far:

## 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 に答える
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 に答える
1

レブム:16文字

en'PNGmkIM![1x1]

渡した引数に基づいてファイルに保存する場合は、プログラムにさらに 3 つの文字が追加されます。

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

このプログラムは、次の Rebol の省略形であり、わかりやすくするために括弧が追加されています。

write a (encode 'png (make image! [1x1]))
于 2010-06-17T12:54:10.050 に答える
1

XPM、57 バイト:

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

リンクするウィキペディアの記事を探していると、XPM2, 26 bytesが見つかりましたが、ここのどのプログラムでも開くことができませんでした。

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