能否通过Photoshop脚本获取画笔工具按钮位置及画笔大小等编辑框值?
Photoshop脚本:获取画笔控件位置与画笔大小值
好问题!咱们逐个拆解你的需求:
一、能否获取画笔工具按钮的位置?
可惜的是,Photoshop的官方脚本API(不管是VBScript还是JavaScript)并没有开放获取UI控件(比如画笔工具按钮)坐标的接口。你设想的appRef.ControlPosition("paintbrushTool")这种方法其实是不存在的——毕竟Photoshop的界面布局会随工作区、窗口尺寸、软件版本动态变化,Adobe并没有把这类UI元素的位置信息暴露给脚本开发者。所以目前没法通过脚本实现获取画笔工具按钮位置的需求。
二、能否获取画笔大小的值?
这个完全没问题!脚本可以直接访问当前画笔的各类属性,包括大小、硬度、间距这些参数。下面是贴合你给出的VBScript风格的实现代码:
VBScript示例代码
' 定义脚本调试模式常量 Const psNeverShowDebugger = 1 Const psDebuggerOnError = 2 Const psBeforeRunning = 3 ' 建立与Photoshop的连接 Dim appRef Set appRef = CreateObject("Photoshop.Application") ' 获取当前选中画笔的大小值 Dim brushSize brushSize = appRef.Brushes.Item(appRef.Brush.Name).Size ' 弹出窗口显示结果 MsgBox "当前画笔大小为: " & brushSize & " px"
代码说明
- 这段代码先连接到运行中的Photoshop实例,然后通过
appRef.Brush.Name获取当前激活的画笔名称,再通过Brushes.Item()定位到对应的画笔对象,最后读取Size属性得到画笔的像素尺寸。 - 要是你需要设置画笔大小,也可以直接赋值:
appRef.Brushes.Item(appRef.Brush.Name).Size = 50(把画笔大小改成50px)。
额外:JavaScript实现方式
如果用Photoshop更常用的JavaScript写,代码会更简洁:
// 获取当前画笔大小 var brushRef = new ActionReference(); brushRef.putClass(charIDToTypeID("Brsh")); var brushProps = executeActionGet(brushRef); var brushSize = brushProps.getInteger(charIDToTypeID("Size")); // 弹出提示 alert("当前画笔大小为: " + brushSize + " px");
需要注意的是,不管用哪种脚本,都要确保Photoshop处于运行状态,并且脚本拥有足够的权限访问应用对象。
内容的提问来源于stack exchange,提问作者Milos
相关产品推荐
相关产品推荐

