lain画集のBinHexエンコードされた画像を見る(2)
BinHexって何
BinHexはClassic Mac OSのファイルをASCIIのテキストへ変換するフォーマット。
だそうで。
以下は変換の説明だが間違っているかもしれないので注意。
エンコード
ファイルの情報やファイル自体を並べたバイト列を、
3バイト以上連続するものを(連続しているバイト) 90 (連続する個数)に変換して圧縮
もともと90の部分は90 00に変換する
そのうえで以下の64文字に変換
!"#$%&'()*+,-012345689@ABCDEFGHIJKLMNPQRSTUVXYZ[`abcdefhijklmpqr
前から0~63(2進で000000~111111)に対応している。
3Byte=24bitを上記の6bitを表現できる4文字に変換する。
例(2進表記):
元 00000000 11111111 00000000
→ 000000 001111 111100 000000
→ !2m!
その文字列の前後に:を付けた上で64文字ごとに改行
先頭行に(This file must be converted with BinHex 4.0)を付ける
今回の2005年版の方には無い。1999年版にはあるらしい
デコードはこれを逆向きに行えばよい
(This file must be converted with BinHex 4.0)と:と改行削除
4文字を3Byteに変換
90周りをいい感じに直す
前の方から見ていって90 00なら90に直す
それ以外なら90の直前のものを90の後の数まで増やす