忍者ブログ
20080511~ 13と7と11の倍数の論理積は13と7と11の積の倍数である。 和ァ・・・
[353] [352] [351] [350] [349] [348] [347] [346] [343] [342] [345]

ついに数年まったりやってきた趣味の1つが実を結んだ。

エクセルのマクロでファイルの2進データを読み取るという作業
とりあえずビットマップのデータを分析してみた。

マクロはあまり使い慣れてないので、とりあえずユーザー定義関数をきっちり作ることからはじめる。
バイナリデータを読むコードを、どっかから流用して使うことにする。

とりあえず、現時点でわかったことを書き連ねてみる。

少なくともデフォルトモードでのビットマップ保存において
・最初の54バイトはヘッダのようなものらしい
・最後1バイトはファイルの終了を知らせるもので、0らしい

ヘッダについて
・1、2バイト目は固定?(66と77)
・その次の8バイトはバイト数の表示(8桁あるので約18EB(エクサバイト)が最大?)
・その次8バイトも固定?(54,0,0,0,40,0,0,0)
・さらにその次4バイトは横、その次4バイトは縦のドット数(約4ギガ個が最大ぽい)
・その次2バイトも固定?(1,0)
・その次6バイトは配色に使うビット数だと思う
・その次20バイト分は純粋に描画に用いたバイト数だと思う
・以降ファイル終了の1バイトまで描画が続く

描画部分について
・左下から右に読み、上に改行のように配置するぽい
・24ビット配色の場合は当然1色3ビット
・255,255,255が白、0,0,0が黒
・0,255,255が黄色、0,0,255が赤、255,0,0が青、0,128,0が緑
・改行するごとに0を数バイト入れる
・入れ方は「MOD(横のドット数,4)個」

そんな感じだろうか

今後の予定としては、
・デフォルト以外のビットマップにも応用
・jpgやmp3、exeなども解析してみたい(が、65536バイトを超えるとキツい・・・)
・ビットマップへの書き込みマクロの作成
・ビットマップに見せかけたgifなんかを作れないか検討

をまたしてもまったりとね。




にほんブログ村 科学ブログへ

にほんブログ村
 

拍手[4回]

PR

コメント


コメントフォーム
お名前
タイトル
文字色
メールアドレス
URL
コメント
パスワード
  Vodafone絵文字 i-mode絵文字 Ezweb絵文字


トラックバック
この記事にトラックバックする:


忍者ブログ [PR]
カレンダー
10 2024/11 12
S M T W T F S
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
ブログランキング
ブログランキング参戦中
にほんブログ村 アニメブログ 深夜アニメへ
にほんブログ村 漫画ブログ SF・ファンタジー漫画へ
にほんブログ村 科学ブログ 自然科学へ
よかったらポチッとお願いします^^
最新CM
[12/30 buy steroids credit card]
[09/26 Rositawok]
[03/24 hydraTep]
[03/18 Thomaniveigo]
[03/17 Robertaverm]
最新TB
プロフィール
HN:
量子きのこ
年齢:
43
性別:
男性
誕生日:
1981/04/04
職業:
WinDOS.N臣T
趣味:
妄想・計算・測定・アニメ
自己紹介:
日記タイトルの頭についてるアルファベットは日記の番号です
26進数を右から読みます
例:H→7番目、XP→15(P)×26+23(X)=413番目。
A=0とする仕様につき一番右の桁はAにできませんのでご了承くださいズコー
バーコード
ブログ内検索
アクセス解析