全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1597
推到 Plurk!
推到 Facebook!

請問16bits BMP如何得知RGB數據

答題得分者是:syntax
shanesss
一般會員


發表:14
回覆:18
積分:6
註冊:2008-08-19

發送簡訊給我
#1 引用回覆 回覆 發表時間:2008-10-07 15:07:43 IP:218.161.xxx.xxx 訂閱
例如:
一個BMP 16bits RGB565格式,
某個pixel 資料為0xFF7F,

我知道B佔5bits G佔6bits B佔5bits

但要如何轉成0~255範圍內的顏色數據呢?(例如R為0x55,G為0xF1,B為0x13)

像BMP 32bits一樣..

謝謝
syntax
尊榮會員


發表:26
回覆:1139
積分:1258
註冊:2002-04-23

發送簡訊給我
#2 引用回覆 回覆 發表時間:2008-10-08 09:02:52 IP:118.231.xxx.xxx 訂閱
看似屬於 影音多媒體程式設計討論區(C Builder) 但其實是屬於 新手區的文章

簡單的說,就是 「簡單的」bits數據轉換

bits conversion

H = 1 ~ 8 隨便設一個

R = ((0xFF7F >> 11) * H) & 0xFF
G = (((0xFF7F & 0x07E0) >> 5) * H) & 0xFF
B = ((0xFF7F & 0x001F) * H) & 0xFF

RGB32 = (R << 16) | (G << 8) | B)

===================引 用 shanesss 文 章===================
例如:
一個BMP 16bits RGB565格式,
某個pixel 資料為0xFF7F,

我知道B佔5bits G佔6bits B佔5bits

但要如何轉成0~255範圍內的顏色數據呢?(例如R為0x55,G為0xF1,B為0x13)

像BMP 32bits一樣..

謝謝
shanesss
一般會員


發表:14
回覆:18
積分:6
註冊:2008-08-19

發送簡訊給我
#3 引用回覆 回覆 發表時間:2008-10-08 14:21:17 IP:218.167.xxx.xxx 訂閱
感謝syntax指導,
但是我得到RGB32的值為0x1F3B1F,
正確數值是0x7EFFFF
是哪裡需要注意嗎?
其實我是要做二值化轉換,需要知道每個pixel的RGB正確數值,
目前就16bits有問題(無法很精準)


還有
H = 1 ~ 8 隨便設一個

R = ((0xFF7F >> 11) * H) & 0xFF
G = (((0xFF7F & 0x07E0) >> 5) * H) & 0xFF
B = ((0xFF7F & 0x001F) * H) & 0xFF

H是隨便設一個值??
那這樣不就可以忽略H嗎?

謝謝
系統時間:2024-03-29 23:07:08
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!