解决方案 »
- MediaPlayer核心的播放器,休眠唤醒后断点播放失败
- Flash奔溃,求救
- 谁能解释一下内存上涨的现象
- 这样的宏应如何写#define TRACK(s) ("File: " __FILE__ " Line: " __LINE__ " : " s )
- 写文件问题(在线等)
- 哪里有使用installshield 6.22的电子书下载
- 如何删除CRichEditCtrl中指定的行?
- 我的查询结果要从两张表中关联查询后得到,可是生成结果集m_Set只能对应一张表,我如何才能得到包含两张表信息的查询结果集呢?
- 如何将RichEditCtrl的背景改为一张图片?
- 在SOCKET下如何发送 unsigned __int64的数组
- 毕业设计帮忙参考一下,mm拜托了!
- 程序运行问题?????
B == ???
min=min(R,G,B)//取RGB中的最小值
if R = max, H = (G-B)/(max-min)
if G = max, H = 2 + (B-R)/(max-min)
if B = max, H = 4 + (R-G)/(max-min)H = H * 60
if H < 0, H = H + 360V=max(R,G,B)/256
S=(max-min)/maxH为角度数,S、B表示出来可化为百分数(乘100取整)!
//颜色类
//////////////////////////////////////////////////////////////////////#if !defined(AFX_COLOR_H__33D81BED_1B84_4313_B3B0_E2E83767792B__INCLUDED_)
#define AFX_COLOR_H__33D81BED_1B84_4313_B3B0_E2E83767792B__INCLUDED_#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000typedef enum
{
COLOR_RGB,
COLOR_HLS
}COLOR_FAMILY; //颜色空间class CColor
{
private:
typedef enum{RED,GREEN,BLUE};
UCHAR Value(DOUBLE m1,DOUBLE m2,DOUBLE h)
{
while(h>360)
h-=360;
while(h<0)
h+=360; if(h<60)
m1=m1+(m2-m1)*h/60;
else if(h<180)
m1=m2;
else if(h<240)
m1=m1+(m2-m1)*(240-h)/60; return (UCHAR)(m1*255);
}public:
CColor();
virtual ~CColor();
COLORREF HLS2RGB(DOUBLE Lightness,DOUBLE Saturation,DOUBLE Hue)
{
UCHAR red,green,blue;
if(Saturation==0)
{
red=green=blue=(UCHAR)(Lightness*255);
}
else
{
DOUBLE m1,m2; if(Lightness<=0.5)
m2=Lightness*(1+Saturation);
else
m2=Lightness+Saturation*(1-Lightness);
m1=2*Lightness-m2;
red=Value(m1,m2,Hue+120);
green=Value(m1,m2,Hue);
blue=Value(m1,m2,Hue-120);
}
return RGB(red,green,blue);
} BOOL RGB2HLS(COLORREF RGBclr,DOUBLE &Lightness,DOUBLE &Saturation,DOUBLE &Hue)
{
DOUBLE mn,mx;
INT major;
INT Red,Green,Blue; Red= RGBclr && 0x000000FF;
Green=( RGBclr && 0x0000FF00)>>8;
Blue=( RGBclr && 0x00FF0000)>>16;
if(Red<Green)
{
mn=Red;mx=Green;major=GREEN;
}
else
{
mn=Green;mx=Red;major=RED;
}
if(Blue<mn)
{
mn=Blue;
}
else
{
mx=Blue;major=BLUE;
}
if(mn==mx)
{
Lightness=mn/255;
Saturation=0;
Hue=0;
}
else
{
Lightness=(mn+mx)/510;
if(Lightness<=0.5)
{
Saturation=(mx-mn)/(mn+mx);
}
else
{
Saturation=(mx-mn)/(510-mn-mx);
}
switch(major)
{
case RED:
Hue=(Green-Blue)*60/(mx-mn)+360;
break;
case GREEN:
Hue=(Blue-Red)*60/(mx-mn)+120;
break;
case BLUE:
Hue=(Red-Green)*60/(mx-mn)+240;
break;
}
if(Hue>360) Hue=Hue-360;
}
}
};#endif // !defined(AFX_COLOR_H__33D81BED_1B84_4313_B3B0_E2E83767792B__INCLUDED_)
//颜色类
//////////////////////////////////////////////////////////////////////#if !defined(AFX_COLOR_H__33D81BED_1B84_4313_B3B0_E2E83767792B__INCLUDED_)
#define AFX_COLOR_H__33D81BED_1B84_4313_B3B0_E2E83767792B__INCLUDED_#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000typedef enum
{
COLOR_RGB,
COLOR_HLS
}COLOR_FAMILY; //颜色空间class CColor
{
private:
typedef enum{RED,GREEN,BLUE};
UCHAR Value(DOUBLE m1,DOUBLE m2,DOUBLE h)
{
while(h>360)
h-=360;
while(h<0)
h+=360; if(h<60)
m1=m1+(m2-m1)*h/60;
else if(h<180)
m1=m2;
else if(h<240)
m1=m1+(m2-m1)*(240-h)/60; return (UCHAR)(m1*255);
}public:
CColor();
virtual ~CColor();
COLORREF HLS2RGB(DOUBLE Lightness,DOUBLE Saturation,DOUBLE Hue)
{
UCHAR red,green,blue;
if(Saturation==0)
{
red=green=blue=(UCHAR)(Lightness*255);
}
else
{
DOUBLE m1,m2; if(Lightness<=0.5)
m2=Lightness*(1+Saturation);
else
m2=Lightness+Saturation*(1-Lightness);
m1=2*Lightness-m2;
red=Value(m1,m2,Hue+120);
green=Value(m1,m2,Hue);
blue=Value(m1,m2,Hue-120);
}
return RGB(red,green,blue);
} BOOL RGB2HLS(COLORREF RGBclr,DOUBLE &Lightness,DOUBLE &Saturation,DOUBLE &Hue)
{
DOUBLE mn,mx;
INT major;
INT Red,Green,Blue; Red= RGBclr & 0x000000FF;
Green=( RGBclr & 0x0000FF00)>>8;
Blue=( RGBclr & 0x00FF0000)>>16;
if(Red<Green)
{
mn=Red;mx=Green;major=GREEN;
}
else
{
mn=Green;mx=Red;major=RED;
}
if(Blue<mn)
{
mn=Blue;
}
else
{
mx=Blue;major=BLUE;
}
if(mn==mx)
{
Lightness=mn/255;
Saturation=0;
Hue=0;
}
else
{
Lightness=(mn+mx)/510;
if(Lightness<=0.5)
{
Saturation=(mx-mn)/(mn+mx);
}
else
{
Saturation=(mx-mn)/(510-mn-mx);
}
switch(major)
{
case RED:
Hue=(Green-Blue)*60/(mx-mn)+360;
break;
case GREEN:
Hue=(Blue-Red)*60/(mx-mn)+120;
break;
case BLUE:
Hue=(Red-Green)*60/(mx-mn)+240;
break;
}
if(Hue>360) Hue=Hue-360;
}
}
};#endif // !defined(AFX_COLOR_H__33D81BED_1B84_4313_B3B0_E2E83767792B__INCLUDED_)