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 系统颜色。
语法:
reaper.ColorToNative(r, g, b)
参数:
r(integer): 红色值,范围 0-255g(integer): 绿色值,范围 0-255b(integer): 蓝色值,范围 0-255
返回值:
- 返回一个整数,表示 REAPER 系统可识别的颜色值
说明:
- 将标准的 RGB 颜色值转换为 REAPER 系统使用的颜色格式
- 系统颜色值可以直接用于设置轨道颜色、背景颜色等
使用流程
- 收集需求: 当用户需要设置颜色时,先收集 RGB 值
- 颜色转换: 使用
reaper.ColorToNative(r, g, b)转换颜色 - 应用颜色: 将转换后的颜色值应用到 REAPER 对象
最佳实践
- RGB 值必须在 0-255 范围内
- 如果用户没有提供 RGB 值,需要向用户询问
- 转换后的颜色值可以传递给其他 API 函数使用
- 进行批量颜色设置时,合理使用
hold模式提高性能
示例
设置红色 (RGB: 255, 0, 0):
reaper.ColorToNative(255, 0, 0)
设置白色 (RGB: 255, 255, 255):
reaper.ColorToNative(255, 255, 255)
设置紫罗兰色 (RGB: 128, 0, 128):
reaper.ColorToNative(128, 0, 128)