close

在 .Net 下 24bit bitmap 儲存  圖片的格式並不是大家熟悉的  RGB

儲存的方式是  BGR   剛好顛倒過來




如果要計算灰階
以 100 *100 的 24 bit 圖為例



Dim bits as integer = 100*100 * 3
Dim tempByte as byte

for i = 0 to 100-1
    for j = 0 to  bits -1 step 3
            
            B = bgrValue( j  + i * bits)
            G = bgrValue( j + 1 + i * bits)
            R = bgrValue( j + 2 + i * bits)
            tempByte = (B + G + R ) /3

            bgrValue( j  + i * bits)          = tempByte
            bgrValue( j + 1 + i * bits)    = tempByte
            bgrValue( j + 2 + i * bits)    = tempByte


    next
next

這樣就可以得到 此圖片的灰階 一維陣列



但如果是要比較精確的灰階  要改成

 tempByte = B * 0.114 + G * 0.587 + R * 0.299



只是如果圖片一大   灰階用這兩種計算都會被拖慢,尤其是  第二種方法

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 Rh 的頭像
    Rh

    程式狂想曲

    Rh 發表在 痞客邦 留言(0) 人氣()