1. 程式人生 > >RGB圖轉灰度圖

RGB圖轉灰度圖

biBitCount=16 表示點陣圖最多有216種顏色。每個色素用16位(2個位元組)表示。這種格式叫作高彩色,或叫增強型16位色,或64K色。它的情況比較複雜,當biCompression成員的值是BI_RGB時,它沒有調色盤。16位中,最低的5位表示藍色分量,中間的5位表示綠色分量,高的5位表示紅色分量,一共佔用了15位,最高的一位保留,設為0。這種格式也被稱作555 16位點陣圖。如果biCompression成員的值是BI_BITFIELDS,那麼情況就複雜了,首先是原來調色盤的位置被三個DWORD變數佔據,稱為紅、綠、藍掩碼。分別用於描述紅、綠、藍分量在16位中所佔的位置。在Windows 95(或98)中,系統可接受兩種格式的位域:555和565,在555格式下,紅、綠、藍的掩碼分別是:0x7C00、0x03E0、0x001F,而在565格式下,它們則分別為:0xF800、0x07E0、0x001F。你在讀取一個畫素之後,可以分別用掩碼“與”上畫素值,從而提取出想要的顏色分量(當然還要再經過適當的左右移操作)。在NT系統中,則沒有格式限制,只不過要求掩碼之間不能有重疊。(注:這種格式的影象使用起來是比較麻煩的,不過因為它的顯示效果接近於真彩,而影象資料又比真彩圖像小的多,所以,它更多的被用於遊戲軟體)。