ちょっとドット絵を作りたくなったが、適当なツールが思い付かなかった。Windowsの「ペイント」しか思い付かなかったが、それだけのためにWindowsを起動するのは負けのような気がした。
手元で動いているのはMacBookである。「ペイント」に相当するくらいのアプリケーションはプレインストールされているような気がするが、筆者はMacに疎いのである。少なくとも「アプリケーション」の中を眺める限り、それだとわかるものは無い。GIMPはインストールしているのだが、マウスが無いのでしんどそうだし、それだけのために重いGIMPを起動するのも負けのような気がした。
目の前ではCarbon Emacsが動いていた。ふと、Emacs Lispで(if (looking-at ...))とかやれば、1キーで白黒反転するマクロが簡単に書けるのではないか…と思って、やってみたら、思ったより使い易かったので、もう少し進めてみた。
doteditor.el(漢字コードはEUC)
■起動方法
M-x load-fileまたは(load-file)で上のファイルを開き、M-x dot-editor-mode
■キーバインド
SPC: カーソル位置の□と■の反転
M-r: 選択領域の□と■の反転
M-c: 指定サイズの矩形領域を□で作成
M-e: 選択領域をビットマップとみなして16進数に変換したものを、選択領域の直後に挿入
M-d: 選択領域の16進数を□と■のビットマップに変換したものを、選択領域の直後に挿入
M-p: 選択領域の16進数をPBM形式の画像データにしたものを、tmp.pbmというバッファに作成 & image-modeが使用可能ならそれでプレビュー
■使用例1
1. M-cとし、width, heightに32, 24を入力
→ □が32x24個挿入される
2. 編集
□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□3. ビットマップ全体を選択し、M-e
□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□
□□□□□□□□□□□□■■■■■■■■□□□□□□□□□□□□
□□□□□□□□□■■■■■■■■■■■■■■□□□□□□□□□
□□□□□□□□■■■■■■■■■■■■■■■■□□□□□□□□
□□□□□□□■■■■■□■■■■■■□■■■■■□□□□□□□
□□□□□□■■■■■■■■■■■■■■■■■■■■□□□□□□
□□□□□□■■■■■■■■■■■■■■■■■■■■□□□□□□
□□□□□■■■■■■■■■□□□□■■■■■■■■■□□□□□
□□□□■■■■■■■■■■■■■■■■■■■■■■■■□□□□
□□□□■■■■■■■■■■■■■■■■■■■■■■■■□□□□
□□□■■■■■■■■■□□□□□□□□■■■■■■■■■□□□
□□□■■■■■■■■□□□□□□□□□□■■■■■■■■□□□
□□■■■■■■■□□□□□□□□□□□□□□■■■■■■■□□
□■■■■■■■□□□□□□□□□□□□□□□□■■■■■■■□
□■■■■■■■□□□□□□□□□□□□□□□□■■■■■■■□
□■■■■■■□□□□□□□□□□□□□□□□□□■■■■■■□
■■■□■■■□□□□□□□□□□□□□□□□□□■■■□■■■
■■■□■■■□□□□□□□□□□□□□□□□□□■■■□■■■
■■■□■■■□□□□□□□□□□□□□□□□□□■■■□■■■
■■□□□■■■□□□□□□□□□□□□□□□□■■■□□□■■
■■□□□■■□■■■■■■□□□□■■■■■■□■■□□□■■
□□□□□□□■□□□□□□■■■■□□□□□□■□□□□□□□
□□□□□□□□■■■■■■□□□□■■■■■■□□□□□□□□
000000004. 16進データを選択し、M-pで表示確認
00000000
000ff000
007ffe00
00ffff00
01f7ef80
03ffffc0
03ffffc0
07fc3fe0
0ffffff0
0ffffff0
1ff00ff8
1fe007f8
3f8001fc
7f0000fe
7f0000fe
7e00007e
ee000077
ee000077
ee000077
c70000e3
c6fc3f63
0103c080
00fc3f00
5. 16進データを保存 ■使用例2
1. 16進テキストのビットマップデータを読み込む
00, 00, 00, 00,2. データ全体を選択し、M-d
00, 07, f8, 00,
00, 1f, fe, 00,
00, 3f, ff, 00,
00, 7f, ff, c0,
00, ff, e7, f0,
01, ff, ff, fc,
01, ff, ff, e0,
03, ff, ff, e0,
03, ff, ff, d0,
03, ff, ff, d0,
07, ff, ff, 10,
07, ef, be, 08,
07, ef, be, 08,
07, df, bc, 08,
07, df, 78, 08,
07, df, 78, 08,
0f, de, f8, 10,
0f, dd, f0, 10,
1f, dd, f0, 10,
1f, ed, f0, 20,
3d, f3, e0, 40,
38, f3, e1, e0,
60, 3f, ff, f0,
(0-9, a-f, A-F以外の文字は無視されるのでカンマはそのままで良い、"0x"があるとその"0"が展開対象になるので注意)
□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□
□□□□□□□□□□□□□■■■■■■■■□□□□□□□□□□□
□□□□□□□□□□□■■■■■■■■■■■■□□□□□□□□□
□□□□□□□□□□■■■■■■■■■■■■■■□□□□□□□□
□□□□□□□□□■■■■■■■■■■■■■■■■■□□□□□□
□□□□□□□□■■■■■■■■■■■□□■■■■■■■□□□□
□□□□□□□■■■■■■■■■■■■■■■■■■■■■■■□□
□□□□□□□■■■■■■■■■■■■■■■■■■■■□□□□□
□□□□□□■■■■■■■■■■■■■■■■■■■■■□□□□□
□□□□□□■■■■■■■■■■■■■■■■■■■■□■□□□□
□□□□□□■■■■■■■■■■■■■■■■■■■■□■□□□□
□□□□□■■■■■■■■■■■■■■■■■■■□□□■□□□□
□□□□□■■■■■■□■■■■■□■■■■■□□□□□■□□□
□□□□□■■■■■■□■■■■■□■■■■■□□□□□■□□□
□□□□□■■■■■□■■■■■■□■■■■□□□□□□■□□□
□□□□□■■■■■□■■■■■□■■■■□□□□□□□■□□□
□□□□□■■■■■□■■■■■□■■■■□□□□□□□■□□□
□□□□■■■■■■□■■■■□■■■■■□□□□□□■□□□□
□□□□■■■■■■□■■■□■■■■■□□□□□□□■□□□□
□□□■■■■■■■□■■■□■■■■■□□□□□□□■□□□□
□□□■■■■■■■■□■■□■■■■■□□□□□□■□□□□□
□□■■■■□■■■■■□□■■■■■□□□□□□■□□□□□□
□□■■■□□□■■■■□□■■■■■□□□□■■■■□□□□□
□■■□□□□□□□■■■■■■■■■■■■■■■■■■□□□□
3. 編集
以下略
やはり何でもテキストエディターで編集できるのが良い。
rubikitch
おもしろいですね。
ただ、関数名にはprefixをつけましょう。
「doteditor-」あるいは「de:」、「de/」、「de-」あたりですかね。
reverse-regionは標準コマンドにあるのでかぶっています。
ynomura
ご指摘ありがとうございます。
修正させて頂きました。