因為8 bit 所以可以把圖切成8個平面
作業方法就是把像素用ScanLine讀出
和切面值做and運算
ucRMatrix[x][y] & 0x01 (0x01就是16位元 0000 0001 的意思)
如果與值相等就設為255
Image2->Canvas->Pixels[x][y] = TColor RGB(255,255,255); //白色
不同就設0
Image2->Canvas->Pixels[x][y] = TColor RGB(0,0,0); //黑色
再多寫幾個大概就完成了0x02,0x03.....0x08
--------------------------------1/19(補)
這個作業就是
由於圖片是由8-bit組成 現在我們就是要把這八張圖片拆開來顯示
也就是說 把像素點做& 運算
譬如說 像素點0111 1100
-------------
0000 0001
0000 0010
0000 0100
0000 1000
0001 0000 & 0111 1100 (原圖像素值)
0010 0000
0100 0000
1000 0000
一開始也是大概知道這樣運算
一張圖的像素值也是8-bit
and運算應該是把它的1值取出來其他都為0
例如
0111 1100
0000 0001 ->第一位元
--------------
0000 0000 -->判斷0111 1100 的第一位元是否為1
所以才用and 不用or
這應該就是位元平面的原理
補充 ..
我在想原來像素值可以直接和數值做邏輯運算
沒有想過把像素值二進制化= =
第一位元平面:
第二位元平面:
第三位元平面:
第四位元平面:
第五位元平面:
第六位元平面:
第七位元平面:
第八位元平面:
RGB(255,255,255) 應該是白色, 不是黑色耶!
回覆刪除0x01就是16位元 0000 0001 的意思, 那麼請問
回覆刪除" 再多寫幾個大概就完成了0x02,0x03.....0x08 "
這是甚麼意思??
0x08 是代表什麼呢?
先跟老師說抱歉寫得太草率了
回覆刪除RGB(255,255,255)原來是白色
我搞反了
0x08 就是1000 0000
0x07 0100 0000
以此類推..
還有多寫幾個就是
一樣跑for迴圈
寫8個Button只是把0x01...0x08值代入
寫太草率 讓老師 看不懂 真是對不起XD