📄 lcdp8666.c
字号:
/*
*********************************************************************************************************
* uC/GUI
* Universal graphic software for embedded applications
*
* (c) Copyright 2002, Micrium Inc., Weston, FL
* (c) Copyright 2002, SEGGER Microcontroller Systeme GmbH
*
* 礐/GUI is protected by international copyright laws. Knowledge of the
* source code may not be used to write a similar product. This file may
* only be used in accordance with a license and should not be redistributed
* in any way. We appreciate your understanding and fairness.
*
----------------------------------------------------------------------
File : LCD866.C
Purpose : Color conversion routines for 866 mode
---------------------------END-OF-HEADER------------------------------
*/
#include <stddef.h> /* needed for definition of NULL */
#include "LCD_Protected.h" /* inter modul definitions */
int LCD_Color2Index_8666(LCD_COLOR Color) {
int r,g,b,Index;
r = Color&255;
g = (Color>>8)&255;
b = Color>>16;
/* Check if image is a gray scale ... */
if ((r==g) && (g==b)) {
return 120+ (r+8)/17; /* Convert into colors from 120 - 135*/
}
/* Convert into the 6*6*6 colors ... */
r = (r*5+127)/255;
g = (g*5+127)/255;
b = (b*5+127)/255;
Index = r+6*g+36*b;
return (Index<108) ? Index : Index+40;
}
LCD_COLOR LCD_Index2Color_8666(int Index) {
unsigned int r,g;
U32 b;
/* 16 Gray scale range ? */
if ((Index>=120) && (Index<136)) {
return (U32)0x111111 * (U32)(Index-120);
}
if (Index>=108) {
if (Index<148)
return 0; /* Black for illegal indices */
Index -= 40;
}
r = (Index%6)*(255/5);
g = ((Index/6)%6)*(255/5);
b = (Index/36)*(255/5);
return r+(g<<8)+((U32)b<<16);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -