- 使用指南
- 数字绘画基础知识
- 参考手册
- 实例教程
- 常见问题解答
- 参与者手册
- 扩展包和第三方教程
- 其他
- 显示设置
- 日志查看器
- 数位板设置
- Automated Krita builds on CI matrix
- Brush GUI Design with Lager
- Building Krita from Source
- CMake Settings for Developers
- Enable static analyzer
- How to patch Qt
- Introduction to Hacking Krita
- The Krita Palette format KPL
- Krita SVG Extensions
- Modern C++ usage guidelines for the Krita codebase
- Developing Features
- Optimize Image Processing with XSIMD
- Optimizing tips and tools for Krita
- Google Summer of Code
- Advanced Merge Request Guide
- Python Developer Tools
- Introduction to Quality Assurance
- Making a release
- Reporting Bugs
- Strokes queue
- Testing Strategy
- Triaging Bugs
- Unittests in Krita
- 矢量图层
- 常规设置
- 颜料图层
- 图层组
- 克隆图层
- 文件图层
- 填充图层
- 滤镜图层
- 笔刷引擎
- 透明度蒙版
- 滤镜笔刷引擎
- 滤镜蒙版
- 裁剪工具
- 移动工具
- 变形工具
- 变形笔刷引擎
- 变形蒙版
- 网格与参考线
- 工作区
- 笔刷预设
- 色板
- 键盘快捷键
- 设置菜单
- 性能设置
- 笔尖
- 不透明度和流量
- 常用笔刷选项
- 多路笔刷工具
- 手绘笔刷工具
- 直线工具
- 曲线工具
- 辅助尺工具
- 图层
- 矩形选区工具
- 椭圆选区工具
- 多边形选区工具
- 手绘轮廓选区工具
- 相似颜色选区工具
- 相连颜色选区工具
- 曲线选区工具
- 磁性选区工具
- 形状选择工具
- 锚点编辑工具
- 工具菜单
- 动画时间轴
- 绘图纸外观
- 动画曲线
- 分镜头脚本
- 颜色
- 色域蒙版
- 美术拾色器
- 多功能拾色器
- 智能填色蒙版工具
- *.gih
- 像素笔刷引擎
- *.kra
- SeExpr
- SeExpr 脚本
- 渐变
- 颜色涂抹笔刷引擎
- 纹理
- 拾色器工具
- LUT 色彩管理
- 小型拾色器
- 有损和无损图像压缩
- *.bmp
- *.csv
- *.exr
- *.gbr
- *.gif
- *.heif 和 *.avif
- *.jpg
- *.jxl
- *.kpl
- *.ora
- .pbm、.pgm 和 *.ppm
- *.png
- *.psd
- *.svg
- *.tiff
- *.webp
- 数学运算
- 变暗
- HSX
- 变亮
- 颜色混合
- 负片
- 其他
- 二元逻辑
- 取模运算
- 二次方
- 鬃毛笔刷引擎
- 粉笔笔刷引擎
- 克隆笔刷引擎
- 曲线笔刷引擎
- 力学笔刷引擎
- 网格笔刷引擎
- 排线笔刷引擎
- MyPaint 笔刷引擎
- 粒子轨迹笔刷引擎
- 快速笔刷引擎
- 形状笔刷引擎
- 草图笔刷引擎
- 喷雾笔刷引擎
- 切线空间法线笔刷引擎
- 笔刷选项
- 锁定笔刷选项
- 蒙版笔刷
- 传感器
- 添加形状
- 动画
- 矢量图形排列
- 笔刷预设历史
- 色彩通道
- 颜色滑动条
- 图层显示方案
- 过渡色调混合器
- 直方图
- 导航器
- 图案
- 录像工具
- 参考图像
- 形状属性
- 图像版本快照
- 量化拾色器
- 操作流程
- 触摸屏辅助按钮
- 撤销历史
- 矢量图形库
- 宽色域拾色器
- 调整颜色/图像
- 艺术效果
- 模糊
- 边缘检测
- 浮雕
- 图像增强
- 映射
- 其他
- 小波分解
- 图层样式
- 选区蒙版
- 拆分透明度通道到蒙版
- 编辑菜单
- 文件菜单
- 帮助菜单
- 图像菜单
- 图层菜单
- 选择菜单
- 视图菜单
- 窗口菜单
- 作者档案设置
- 画布快捷键设置
- 隐藏面板模式设置
- 色彩管理设置
- 拾色器设置
- G’Mic 设置
- 弹出面板设置
- Python 插件管理器
- 笔尖
- 笔刷预设
- 图案
- 文字工具
- 渐变编辑工具
- 图案编辑工具
- 西文书法工具
- 矩形工具
- 椭圆工具
- 多边形工具
- 折线工具
- 手绘路径工具
- 力学笔刷工具
- 填充工具
- 闭合填充工具/圈涂
- 渐变工具
- 智能补丁工具
- 参考图像工具
- 测量工具
- 缩放工具
- 平移工具
- Building Krita with Docker on Linux
- Building krita on host Linux system (unsupported)
- Building Krita for Android
- Working on Krita Dependencies
- 渐变
- 多维网格
- 图案
- 网点
- 单纯形法噪点
SeExpr 表达式参考
本页面列出了所有在 Krita 中可用的 SeExpr 变量、函数和运算符,并介绍它们的功能和用法。所有内容均基于 SeExpr 官方用户文档 修改而来,为了方便 Krita 用户的使用进行了一些语句上的调整。(译者注:为了照顾脚本编程的实际需要,本页的某些部分采用中英对照翻译。)
参见
参见
Variables (变量)
External variables (外部变量)
这些变量由宿主程序 (Krita) 提供。它们被注册到 SeExpr 模块的自动完成提示信息中,可以通过 Ctrl+Space 快捷键访问。
- $u, $v
局部变量可以在表达式的开头处定义:
$a = noise($P); $b = noise($a * 1); pow($a, 0.5) + $b
外部变量也可以被局部赋值所改写。例如对噪声频率进行缩放:
$P = $P * 10; # 提高噪声频率 fbm(vnoise($P) + $P/4)
你也可以定义命名空间变量,例如:
$A::a = $u * 10;
Control Structures (控制结构)
SeExpr 提供了常见的 if 条件结构:
if ($ u > 0.5) { $color = [0, 0, 1]; } else { $color = [1, 0, 0]; } $color
它也提供了 ternary operator (三元运算符):
$u = $i < .5 ? 0.0 : 10.0
你可以任意嵌套三元运算符,例如:
$color = $u < .5 ? ($v < 0.5 ? [0, 0, 1] : [1, 0, 0]) : [0, 1, 0]; $color
你也可以通过 if 结构来实现三元运算符的嵌套:
if ($ u > 0.5) { if ($v < 0.5) { $color = [0, 0, 1]; } else { $color = [1, 0, 0]; } } else { $color = [1, 0, 0]; } $color
Operators (运算符/按递减顺序排列)
- [a,b,c]
你可以使用基本赋值语句,例如:
$foo = $bar
你也可以在赋值语句中使用运算符:
$foo += $bar;
上面的语句相当于:
$foo = $foo + $bar;
可以使用的赋值运算符如下:
+=
-=
/=
%=
*=
^=
Comments (代码注释)
你可以用
#
字符给对脚本进行代码注释。SeExpr 不会对一行代码里位于#
号后面的内容进行渲染,但这不意味着它们被完全忽略——代码注释可以用来声明整数、浮点和矢量变量的有效范围,你可以使用 SeExpr 对话框的图形控件在此范围内拖动数值。提示
$var0
作为整数变量,范围在 0 - 10 (含):$var0 = 0; # 0, 10
$var1
作为浮点变量,范围和前者一样:$var1 = 0; # 0.000, 10.000
$var2
作为矢量变量,范围和前者一样:$var2 = [0, 0, 0] # 0.000, 10.000
最后一个例子尤其有用。SeExpr 会将范围为
[0, 1]
的矢量视作颜色信息:# 输出颜色为暗红色 $color = [0.5, 0, 0] # 0.000, 1.000
不管是哪种数值类型,如果没有指定范围,那么 SeExpr 对话框控件将默认范围为 0 - 1 (含)。
多行表达式的每一行都可以有自己的代码注释。
Logging Functions (日志函数)
- float printf ( string format, [param0, param1, …] )
- float bias ( float x, float b)
- float cellnoise ( vector v )
- float choose ( float index, float choice1, float choice2, […] )
- float PI
- float acos ( float x )
- float angle ( vector a, vector b )
** Vectors (矢量)** 包括矢量点、颜色矢量和三维矢量,有时也和 scalars (标量) (simple floating point values / 简单浮点数值) 混用。如果在矢量语境里面使用标量,它将会被复制到矢量的三个分量上,例如
0.5
将被转换为[0.5, 0.5, 0.5]
。矢量在标量语境中使用时,只有它的第一分量才会被使用。这种做法的好处是所有给标量准备的函数也可以自动支持矢量。例如
pick
、choose
、cycle
、spline
等均可使用矢量。算数运算符,如
+
、*
等,还有标量函数会按照分量应用到矢量。例如将gamma
函数应用到一个 mao (映射) 时将调整全部三个颜色通道的 gamma 值。Curve Functions (曲线函数)
将参数数值按照下列函数指定的控制点进行插值。
- color ccurve ( float param, float pos0, color val0, int interp0, float pos1, color val1, int interp1, […] )
自定义函数可用 C++ 编写后作为动态插件加载。详情请参照 SeExpr 的 Writing Custom Expression Plugins / 编写自定义表达式插件 文章。
警告
Krita 不支持此功能。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论