新增功能:颜色正规化

This commit is contained in:
keqingmoe 2024-12-11 22:04:49 +08:00
parent a84d1be86d
commit e7ed992aee

View File

@ -305,7 +305,11 @@ enum struct palette256 : u8
*/
struct rgb_t
{
u8 red{}, green{}, blue{};
u8 red{};
u8 green{};
u8 blue{};
friend auto operator==(rgb_t, rgb_t) noexcept -> bool = default;
};
/**
@ -672,6 +676,46 @@ constexpr auto get_nearest_palette16(palette256 c) noexcept -> palette16
return static_cast<palette16>(p16.index16);
}
/**
* @brief 颜色正规化
* @arg `palette1`
* @return `rgb_t`
*/
constexpr auto normalize(palette1) noexcept -> rgb_t
{
return rgb_t{0, 0, 0};
}
/**
* @brief 颜色正规化
* @arg `palette16` 16 种预设颜色
* @return `rgb_t `
*/
constexpr auto normalize(palette16 c) noexcept -> rgb_t
{
auto&& info = get_color_info(c);
return rgb_t{info.red, info.green, info.blue};
}
/**
* @brief 颜色正规化
* @arg `palette256` 256 种预设颜色
* @return `rgb_t`
*/
constexpr auto normalize(palette256 c) noexcept -> rgb_t
{
auto&& info = get_color_info(c);
return rgb_t{info.red, info.green, info.blue};
}
/**
* @brief 颜色正规化
* @arg `rgb_t` RGB 真彩色
* @return `rgb_t`
*/
constexpr auto normalize(rgb_t rgb) noexcept -> rgb_t
{
return rgb;
}
}
}