コードゴルフ:1x1ブラックピクセル
-
05-10-2019 - |
質問
最近、お気に入りの画像エディターを使用して、1x1ブラックピクセルを作成しました(HTMLのソリッドボックスを安く描きたいときに役立つことができます)。私はそれをモノクロPNGにしましたが、それは120バイトになりました!つまり、それはちょっと急です。 120バイト。 1ピクセル用. 。次に、それをGIFに変換し、サイズを43バイトに下げました。はるかに優れていますが、それでも...
チャレンジ
最短の画像ファイルまたはプログラム は また 生成します 1x1ブラックピクセル。提出は次のとおりです。
- 1x1ブラックピクセルを表す画像ファイル。選択された形式は、1x1よりも大きな画像を表すことができ、アドホックにすることはできません(つまり、コードゴルフ用に作った画像形式ではありません)。画像ファイルはバイトカウントによってランク付けされます。
- そのような画像ファイルを生成するプログラム。プログラムは、コードゴルフの通常のように、キャラクター数によってランク付けされます。
答えがこれら2つのカテゴリのいずれかに分類される限り、何でも公正なゲームです。
また、画像ファイルについては、外部画像ホストを使用するのではなく、16進または脱出してください。
解決
他のヒント
データ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')
ユニコードアート フォーマット:
·
PBM フォーマットは白黒のグラフィック形式です。
単一の黒いピクセルのバイナリ表現は8バイトを取り、C#を使用してファイルに書き込むと、次のようになります。
File.WriteAllText("p.pbm", "P4 1 1 ÿ");
ロゴ /タートルベーシック、12バイト
PENDOWN FD 1
私は覚えていません pendown
に短縮できます pd
またはそうでない場合、もしそうなら、それはそれを7バイトに落とします。
BASH:31 CHARS
インターウェブから単一のピクセルGIFをダウンロードするスクリプトは、単一のピクセル自体よりもバイトが少ないです...
wget http://tinyurl.com/2w97dyo
Python+PIL 68 Chars
from PIL import Image
Image.fromstring("P",(1,1),"\0").save("B.gif")
ポストスクリプト、29バイト。実際には「シングルピクセル」ではありませんが、プレビュー画面にはシングルピクセルでした。
0 0 moveto .5 0 lineto stroke
Python(w/ pil)(85 chars):
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>
drracket: :23 chars
#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
.
Rebmu: :16枚
en'PNGmkIM![1x1]
あなたが渡す引数に基づいてファイルに保存したい場合、それはプログラムにさらに3つのcharを追加します。
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">
しかし、それを配置するにはもっと時間がかかります。