這次的作業流程大致上是在說
先把一張八位元圖片的每個位元切平面顯示出來
再利用ScanLine[i]的方式
把圖片每一列的第一個點的記憶體位址取出給一個型態為Byte的陣列指標當做起始位置
另一方面也宣告一個指標來接收你將來要顯示的圖片的起始記憶體位置
接著跑圖片的三倍寬度次數
利用記錄原始圖片值的陣列
把這一列上的每個點和某位元平面值做AND運算
如果為該位元平面的點
就把用來顯示圖片的一維陣列對應位置的值設成255
如果不是的話就設成0
先把一張八位元圖片的每個位元切平面顯示出來
再利用ScanLine[i]的方式
把圖片每一列的第一個點的記憶體位址取出給一個型態為Byte的陣列指標當做起始位置
另一方面也宣告一個指標來接收你將來要顯示的圖片的起始記憶體位置
接著跑圖片的三倍寬度次數
利用記錄原始圖片值的陣列
把這一列上的每個點和某位元平面值做AND運算
如果為該位元平面的點
就把用來顯示圖片的一維陣列對應位置的值設成255
如果不是的話就設成0
以下是我的程式執行的結果:
↓1-Bit
↓2-Bit
↓3-Bit
用彩色影像當然也可以呀!
回覆刪除