用typescript实现
时间: 2024-03-22 09:37:00 浏览: 14
以下是一个 TypeScript 函数,将 sRGBA 转换为 RGBA:
```typescript
function sRGBAToRGBA(srgba: number[]): number[] {
// 将 sRGBA 值除以 255
const r = srgba[0] / 255;
const g = srgba[1] / 255;
const b = srgba[2] / 255;
const a = srgba[3];
// 将结果乘以 sRGB gamma 值
const rr = (r <= 0.04045) ? (r / 12.92) : (Math.pow(((r + 0.055) / 1.055), 2.4));
const gg = (g <= 0.04045) ? (g / 12.92) : (Math.pow(((g + 0.055) / 1.055), 2.4));
const bb = (b <= 0.04045) ? (b / 12.92) : (Math.pow(((b + 0.055) / 1.055), 2.4));
// 将结果乘以 255,并返回对应的 RGBA 值
return [
Math.round(rr * 255),
Math.round(gg * 255),
Math.round(bb * 255),
a
];
}
```
该函数接受一个包含 sRGBA 值的数组作为参数,并返回一个包含对应 RGBA 值的数组。注意,该函数假设输入的 sRGBA 值已经被验证为合法的。