/*
温度需先转换为0-255的灰度值;
最终生成的rgb格式为16bit的ARGB;
*/
int TCtoRGB(int grayValue)
{
int rgbValues[3] = {0};
if (grayValue < 64)
{
rgbValues[2] = 0;
rgbValues[1] = (int)(4 * grayValue);
rgbValues[0] = 255;
}
else if (grayValue >= 64 && grayValue < 128)
{
rgbValues[2] = 0;
rgbValues[1] = 255;
rgbValues[0] = (int)(2 * 255 - 4 * grayValue);
}
else if (grayValue >= 128 && grayValue < 192)
{
rgbValues[2] = (int)(4 * grayValue - 2 * 255);
rgbValues[1] = 255;
rgbValues[0] = 0;
}
else
{
rgbValues[2] = 255;
rgbValues[1] = (int)(4 * 255 - 4 * grayValue);
rgbValues[0] = 0;
}
return ((rgbValues[2] << 7 & 0x7c00) | (rgbValues[1] << 2 & 0x3e0) | (rgbValues[0] & 0x1f) | 0x8000);
}