余白の書きなぐり

aueweのブログ

テキストで画像を表現

テキスト形式で画像を生成する規格について。 詳細は wikipedia を参照。

白黒画像 (拡張子 pbm)

portable bitmap formatの略。 白が0で黒が1。

以下の内容のテキストファイルを拡張子pbmで保存すれば、 画像として読み込める。 WindowsのMSペイントでは読み込めないけれど、IrfanViewなら読み込めた。 後で述べる convert コマンド等で png形式に変換すると良い。

P1
# 横4 縦3
4 3 
0 0 0 0
0 1 1 0
1 1 0 0

グレー画像 (拡張子 pgm)

portable graymap formatの略。 白黒のグラデーションを0から15の数値で指定。 黒が0で白が15。pbmの場合と色の向きが逆なので注意。

P2
# 横4 縦3 色調15段階
4 3
15
0 0 0 0
1 2 3 4
5 6 7 8

カラー画像 (拡張子 ppm)

portable pixmap formatの略。 赤、緑、青の三原色をそれぞれ0から255の数値で指定。 #ffffff等のカラーコードに対応。

P3
# 横3 縦2 色調256*256*256段階
3 2
255
255 0 0        # ff0000(赤) 座標は左上
0 255 0        # 00ff00(緑) 座標は中上
0 0 255        # 0000ff(青) 座標は右上
255 255 0      # ffff00(黄) 座標は左下
255 255 255    # ffffff(白) 座標は中下
0 0 0          # 000000(黒) 座標は右下

そのままでは画像サイズが小さすぎるので

ImageMagick の convertコマンドを使用して拡大する。 UNIX系のOSには大抵プリインストールされている。 Windowsの場合はここ からダウンロードする。 convertの使い方についてはここ がまとまっている。 convert以外のImageMagickソフトについてはここがまとまってる。

mini.ppmを拡大してbig.pngに変換するには、以下のようにコンソールに入力。

convert -geometry '500%'  -filter Point  mini.ppm big.png

-filter Pointオプションでアンチエイリアスを切っている。 画像を普通に拡大すると角がまるまって嫌な感じなので。