⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gui_calccolordist.c

📁 MCB2300_ucgui_LCD320240.rar LPC2368的uc/gui的移植
💻 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		: GUI_CalcColorDist
Purpose 	: Color conversion routines
---------------------------END-OF-HEADER------------------------------
*/

#include <stdlib.h>
#include "GUI.h"

/*********************************************************************
*
*   	defines
*
**********************************************************************
*/

#if 1  /* Normaly calculate square values */

#define  SQUARE(Dist) ((U16)Dist) * ((U16)Dist)

#else

#define S(x) ((x)*(x))
#define SQUARES(Base)  S(Base+0),  S(Base+1),  S(Base+2),  S(Base+3), S(Base+4),  S(Base+5),  \
					   S(Base+6),  S(Base+7),  S(Base+8),  S(Base+9), S(Base+10), S(Base+11), \
					   S(Base+12), S(Base+13), S(Base+14), S(Base+15)

static const U16 aSquare[] = {
SQUARES(0 * 16)
,SQUARES(1 * 16), SQUARES(2 * 16), SQUARES(3 * 16)
,SQUARES(4 * 16) ,SQUARES(5 * 16), SQUARES(6 * 16), SQUARES(7 * 16)
,SQUARES(8 * 16) ,SQUARES(9 * 16), SQUARES(10 * 16),SQUARES(11 * 16)
,SQUARES(12 * 16),SQUARES(13 * 16),SQUARES(14 * 16),SQUARES(15 * 16)
};

#define  SQUARE(Dist) aSquare[Dist]

#endif

/*********************************************************************
*
*   	public code, color conversions for palette based displays
*
**********************************************************************
*/
/*********************************************************************
*
*   	GUI_CalcColorDist
*/
U32 GUI_CalcColorDist(LCD_COLOR PalColor, LCD_COLOR  Color)
{
	/* This routine does not use abs() because we are optimizing for speed ! */
	I16 Dist;
	U32 Sum;
	Dist = (PalColor & 0xff) - (Color & 0xff);
	if (Dist < 0)
	{
		Dist = -Dist;
	}
	Sum = SQUARE(Dist);
	Dist = ((PalColor >> 8) & 0xff) - ((Color >> 8) & 0xff);
	if (Dist < 0)
	{
		Dist = -Dist;
	}
	Sum += SQUARE(Dist);
	Dist = (PalColor >> 16) - (Color >> 16);
	if (Dist < 0)
	{
		Dist = -Dist;
	}
	return Sum + SQUARE(Dist);
}

/*************************** End of file ****************************/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -