C++最精准的RGB-HSB(HSV)-HSL的色值转换
迪丽瓦拉
2024-01-29 00:52:03
0

#include
#include

using namespace std;

// HSB hue 色相 saturation 饱和度 brightness 亮度 (有些地方用HSV代替 v代表value
// 也就是指亮度值)
// HSL hue 色相 saturation 饱和度 lightness 明度
#define MIN(a, b) ((a) < (b) ? (a) : (b))
#define MAX(a, b) ((a) > (b) ? (a) : (b))

struct RGB // 定义 RGB 结构体
{
  float r;
  float g;
  float b;
};
struct HSV // 定义HSV结构体
{
  float h;
  float s;
  float v;
};

struct HSL // 定义HSL结构体
{
  float h;
  float s;
  float l;
};

// 调整RGB的值
void adjustRGB(RGB &rgb) {
  if (rgb.r < 0) {
    rgb.r = 0;
  }
  if (rgb.g < 0) {
    rgb.g = 0;
  }
  if (rgb.b < 0) {
    rgb.b = 0;
  }

  if (rgb.r > 255) {
    rgb.r =

相关内容