Color
本文档由
src/stdlib/color.mcrs自动生成,请勿手动编辑。
API 列表
- rgb_pack
- rgb_r
- rgb_g
- rgb_b
- rgb_lerp
- rgb_to_l
- rgb_to_s
- rgb_to_h
- hsl_to_r
- hsl_to_g
- hsl_to_b
- hsl_to_packed
- rgb_to_hex
rgb_pack v1.0.0
将 RGB 分量打包为单个整数(0xRRGGBB 格式)
fn rgb_pack(r: int, g: int, b: int): int参数
| 参数 | 说明 |
|---|---|
r | 红色通道,范围 [0, 255] |
g | 绿色通道,范围 [0, 255] |
b | 蓝色通道,范围 [0, 255] |
返回: r65536 + g256 + b
示例
let red: int = rgb_pack(255, 0, 0) // result: 16711680 (0xFF0000)rgb_r v1.0.0
从打包 RGB 整数中提取红色分量
fn rgb_r(packed: int): int参数
| 参数 | 说明 |
|---|---|
packed | 打包颜色整数(0xRRGGBB) |
返回: 红色通道值,范围 [0, 255]
示例
let r: int = rgb_r(16711680) // result: 255rgb_g v1.0.0
从打包 RGB 整数中提取绿色分量
fn rgb_g(packed: int): int参数
| 参数 | 说明 |
|---|---|
packed | 打包颜色整数(0xRRGGBB) |
返回: 绿色通道值,范围 [0, 255]
示例
let g: int = rgb_g(65280) // result: 255 (0x00FF00)rgb_b v1.0.0
从打包 RGB 整数中提取蓝色分量
fn rgb_b(packed: int): int参数
| 参数 | 说明 |
|---|---|
packed | 打包颜色整数(0xRRGGBB) |
返回: 蓝色通道值,范围 [0, 255]
示例
let b: int = rgb_b(255) // result: 255 (0x0000FF)rgb_lerp v1.0.0
两个打包 RGB 颜色之间的线性插值
fn rgb_lerp(a: int, b: int, t: int): int参数
| 参数 | 说明 |
|---|---|
a | 起始颜色(打包 0xRRGGBB) |
b | 结束颜色(打包 0xRRGGBB) |
t | 混合因子,范围 [0, 1000](0=a,1000=b) |
返回: a 和 b 之间插值得到的打包 RGB 颜色
示例
let mid: int = rgb_lerp(0xFF0000, 0x0000FF, 500) // halfway between red and bluergb_to_l v1.0.0
从 RGB 分量计算 HSL 亮度(×10000 精度)
fn rgb_to_l(r: int, g: int, b: int): int参数
| 参数 | 说明 |
|---|---|
r | 红色 ×10000,范围 [0, 2550000] |
g | 绿色 ×10000 |
b | 蓝色 ×10000 |
返回: 亮度,范围 [0, 10000](0=黑,10000=白)
示例
let l: int = rgb_to_l(2550000, 2550000, 2550000) // result: 10000 (white)rgb_to_s v1.0.0
从 RGB 分量计算 HSL 饱和度(×10000 精度)
fn rgb_to_s(r: int, g: int, b: int): int参数
| 参数 | 说明 |
|---|---|
r | 红色 ×10000 |
g | 绿色 ×10000 |
b | 蓝色 ×10000 |
返回: 饱和度,范围 [0, 10000](0=灰,10000=全饱和)
示例
let s: int = rgb_to_s(2550000, 0, 0) // result: 10000 (pure red is fully saturated)rgb_to_h v1.0.0
从 RGB 分量计算 HSL 色相(×10000 精度)
fn rgb_to_h(r: int, g: int, b: int): int参数
| 参数 | 说明 |
|---|---|
r | 红色 ×10000 |
g | 绿色 ×10000 |
b | 蓝色 ×10000 |
返回: 色相,范围 [0, 3600000](度×10000;0=红,1200000=绿,2400000=蓝)
示例
let h: int = rgb_to_h(0, 2550000, 0) // result: 1200000 (120°, pure green)hsl_to_r v1.0.0
Convert HSL to the red channel of RGB (×10000 scale).
fn hsl_to_r(h: int, s: int, l: int): int参数
| 参数 | 说明 |
|---|---|
h | Hue ×10000, range [0, 3600000] |
s | Saturation ×10000, range [0, 10000] |
l | Lightness ×10000, range [0, 10000] |
返回: Red channel ×10000, range [0, 2550000]; divide by 10000 for 0-255
示例
let r: int = hsl_to_r(0, 10000, 5000) // pure red → 2550000hsl_to_g v1.0.0
Convert HSL to the green channel of RGB (×10000 scale).
fn hsl_to_g(h: int, s: int, l: int): int参数
| 参数 | 说明 |
|---|---|
h | Hue ×10000, range [0, 3600000] |
s | Saturation ×10000, range [0, 10000] |
l | Lightness ×10000, range [0, 10000] |
返回: Green channel ×10000, range [0, 2550000]
示例
let g: int = hsl_to_g(1200000, 10000, 5000) // pure green → 2550000hsl_to_b v1.0.0
Convert HSL to the blue channel of RGB (×10000 scale).
fn hsl_to_b(h: int, s: int, l: int): int参数
| 参数 | 说明 |
|---|---|
h | Hue ×10000, range [0, 3600000] |
s | Saturation ×10000, range [0, 10000] |
l | Lightness ×10000, range [0, 10000] |
返回: Blue channel ×10000, range [0, 2550000]
示例
let b: int = hsl_to_b(2400000, 10000, 5000) // pure blue → 2550000hsl_to_packed v1.0.0
将 HSL(×10000 精度)转换为打包 RGB 整数(0xRRGGBB)
fn hsl_to_packed(h: int, s: int, l: int): int参数
| 参数 | 说明 |
|---|---|
h | 色相 ×10000,范围 [0, 3600000] |
s | 饱和度 ×10000,范围 [0, 10000] |
l | 亮度 ×10000,范围 [0, 10000] |
返回: 打包 RGB 整数,每通道 0-255
示例
let col: int = hsl_to_packed(0, 10000, 5000) // pure red → 0xFF0000rgb_to_hex v1.0.0
Pack RGB into a 0xRRGGBB integer (alias for rgb_pack with explicit naming).
fn rgb_to_hex(r: int, g: int, b: int): int参数
| 参数 | 说明 |
|---|---|
r | Red channel, range [0, 255] |
g | Green channel, range [0, 255] |
b | Blue channel, range [0, 255] |
返回: r65536 + g256 + b (same as rgb_pack)
示例
let hex: int = rgb_to_hex(0, 128, 255) // result: 32895 (0x0080FF)