【C語言】MATLAB中Jet僞彩色模式在C語言中的實現

項目中需要在嵌入式系統中驅動一塊彩屏,需要用顏色來表徵一個信號的強度,當時就想到了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);
}

實際效果:

如左側彩條

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章