項目中需要在嵌入式系統中驅動一塊彩屏,需要用顏色來表徵一個信號的強度,當時就想到了matlab裏的jet配色,無奈網上沒有類似代
碼,只好自己寫了一套函數
屏幕支持16位彩色,爲RGB565格式,在此貼出代碼,希望可以幫大家節省時間。
IPS_GetRGB565Color
- 由R,G,B顏色分量獲得RGB565格式的色彩
- 輸入R,G,B分量
- 返回RGB565格式的16位彩色
u16 IPS_GetRGB565Color(u8 R,u8 G,u8 B)
{
u16 rgb565;
rgb565 = (R>>3)<<11;
rgb565 |= (G>>2)<<5;
rgb565 |= (B>>3);
return rgb565;
}
IPS_GetJetColor
- 根據輸入的強度值(0-255)返回對應的Jet僞彩色模型配色
- 輸入強度值val(0-255)
- 輸出RGB565格式的Jet僞彩色模型配色
u16 IPS_GetJetColor(u8 val)
{
u8 R,G,B;
R = ( val > 128 ) ? (val < 192 ) ? ( val - 128 ) * 4 : 255 : 0;
G = ( val < 64 ) ? val * 4 : ( val > 192) ? (256 - (4 * ( val - 192 ) ) ) : 255;
B = ( val <= 64 ) ? 255 : ( val > 128 ) ? 0 : (256 - (4 * ( val - 128) ) );
return IPS_GetRGB565Color(R,G,B);
}
實際效果:
如左側彩條