- Bitmap Grayscale Conversion
Download:bmpGrayConvertor.zip
繼上次的[C/C++] Bitmap Bit Conversion之後,心血來潮再做一個Grayscale的。Grayscale比bit conversion容易實做多了,一個簡易的Grayscale的演算如下:
----------------------------------------------
newRGB = (R*2 + G*5 + B) / 8
----------------------------------------------
將一個24bits全彩的pixel裡的紅色乘上2+綠色乘上5+藍色的總和再除以8,存到一個為8bits的pixel裡,所以技巧跟bitConversion很像,只是調色盤換了而已。
這個範例裡所使用的調色盤:
[左圖]是24bits全彩原始圖,[右圖]則是轉換成8bits grayscale的圖。雖然與完美的grayscale相比仍有些差距,但整體來說已經不錯了。
這次的程式還有稍微處理一下width padding的問題,理論上應該可以正常轉換非4倍數大小的圖片。
No comments:
Post a Comment