これ何だ?の種明し

MEMO

2011年11月02日 22:42

これ何だ?の種明し

前回の「これ何だ?正解は・・・」の続きです。

前回は、
エクセルのセルを正方形にして、一つ一つのセルに
色をつけて、画像を作りました。


100列×100行の10,000個のセルに
色を付けてあります。



ご覧の通り、
大変地味な作業をがんばりました。

なんて、そんな訳ないです。

では、やり方です。
まず、元になる画像(BMP)を用意し
その画像のバイナリデータから
ピクセルごとのRGBカラーをマクロで読み取り、
同じように、セルに色を付ける。完成!!
数秒で終わります。


もう少し詳しく。
ここからは、備忘録です。

元になる画像(BMP)は、
Windowsのビットマップファイルで用意する。

画像は拡大すると、点の集まりで出来ています。

画像ファイルに記録されている中味(バイナリデータ)を
1バイトづつ読み取り、画像の一つの点が何色なのか調べます。
その色で、エクセルのセル一つ一つを
同じように順番に塗りつぶしていきます。
これをVBA(マクロ)でやってます。

但し、
今回のプログラムは、都合(スキル不足)により、
いろいろ条件があります。

元画像について
Windowsの24ビット ビットマップファイルであること
ファイルサイズが、32768バイトを越えないこと
画像の横幅(ピクセル)が、4の倍数であること

横100px 縦100px
横120px 縦 80px
などにトリミングしておく

正方形なら104px × 104pxが限界
縦横の積が10000程度になるように 理由は後日


MEMO
1バイト=8ビット
00000000~11111111 2進数の8桁
2の8乗
10進数では、0~255までの
256通りの情報です。

RGBとは
R=赤(red)
G=緑(green)
B=青(blue)

一つの点(ピクセル)はRGBの強さ(濃さ)で表現
Rの強さを0~255段階(1バイト)
Gの強さを0~255段階(1バイト)
Bの強さを0~255段階(1バイト)

RGB 0,0,255は 青になる。

合計3バイトで、一つの点の色が決まる。
いつものことながら、自分なりの解釈の備忘録ですので、
あしからず。

次回は、ビットマップ画像の仕組み

関連記事
iPad Air 分解 自作
iPhone 5 自作
さるぼぼクエスト
Mountain Lion いろいろ勘違いしてた
ちょっ!ちょっ!ちょけらまいか
あらびん どびん はげちゃびん
見れなかった人は、
Share to Facebook To tweet