# Reaper Color

> REAPER 颜色操作与管理。用于设置和处理 REAPER 中的颜色，包括使用 RGB 值并通过 reaper.ColorToNative 转换为系统颜色。当用户提到颜色相关操作时使用此 skill。

- Skill: `wastee/reaper-color` (Agent Skill)
- Install (CLI): `npx skillmds@latest add wastee/reaper-color`
- Raw SKILL.md: https://api.skillmd.com/api/skills/wastee/reaper-color/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- License: MIT
- Author: wastee (https://skillmd.com/u/wastee)
- Updated: 2026-09-22
- Page: https://skillmd.com/skills/wastee/reaper-color

---


# REAPER 颜色操作与管理

为 Agent 提供 REAPER 颜色操作的详细指令，包括 RGB 值转换、颜色设置等操作。

## 使用时机

在以下情况使用此技能：
- 当用户提到"颜色"、"color"、"色彩"、"rgb"、"bg颜色"等关键词时
- 当用户需要设置或修改 REAPER 对象的颜色时
- 当用户需要进行颜色值的格式转换时

## 指令

### 核心规则

- **颜色格式**: 必须使用 RGB 格式（红、绿、蓝，范围 0-255）
- **颜色转换**: 必须使用 `reaper.ColorToNative()` 将 RGB 值转换为系统颜色
- **reaper 对象**: `reaper` 对象已自动注入，可直接使用
- **hold 模式使用规范**:
  - `hold()` 仅用于**批量写入/设置类**操作
  - `hold` 内所有调用都会被批处理，**返回值一律为 `None/0`**
  - 任何**需要返回值/读取**的调用必须放在 `hold` 外（如 `CountTracks`、`GetTrack`、`ColorToNative`、`GetTrackColor`、`GetMediaTrackInfo_Value`、`ColorFromNative`）
  - 推荐流程：**hold 外先计算/获取 → hold 内只做 Set/Insert 写入 → hold 外再读取/校验**

### API 方法

#### ColorToNative

将 RGB 值转换为 REAPER 系统颜色。

**语法**:
```python
reaper.ColorToNative(r, g, b)
```

**参数**:
- `r` (integer): 红色值，范围 0-255
- `g` (integer): 绿色值，范围 0-255
- `b` (integer): 蓝色值，范围 0-255

**返回值**:
- 返回一个整数，表示 REAPER 系统可识别的颜色值

**说明**:
- 将标准的 RGB 颜色值转换为 REAPER 系统使用的颜色格式
- 系统颜色值可以直接用于设置轨道颜色、背景颜色等

### 使用流程

1. **收集需求**: 当用户需要设置颜色时，先收集 RGB 值
2. **颜色转换**: 使用 `reaper.ColorToNative(r, g, b)` 转换颜色
3. **应用颜色**: 将转换后的颜色值应用到 REAPER 对象

### 最佳实践

- RGB 值必须在 0-255 范围内
- 如果用户没有提供 RGB 值，需要向用户询问
- 转换后的颜色值可以传递给其他 API 函数使用
- 进行批量颜色设置时，合理使用 `hold` 模式提高性能

### 示例

**设置红色 (RGB: 255, 0, 0)**:
```python
reaper.ColorToNative(255, 0, 0)
```

**设置白色 (RGB: 255, 255, 255)**:
```python
reaper.ColorToNative(255, 255, 255)
```

**设置紫罗兰色 (RGB: 128, 0, 128)**:
```python
reaper.ColorToNative(128, 0, 128)
```

