Photoshop Javascript:如何获取/设置当前工具?

时间:2015-03-17 21:06:42

标签: photoshop-script

如何在Photoshop中使用Javascript获取/设置当前工具?

#target photoshop

if (app.currentTool == BRUSH_TOOL) {
    app.currentTool  = ERASE_TOOL;
} else {
    app.currentTool  = BRUSH_TOOL;
}

3 个答案:

答案 0 :(得分:4)

我找到了解决方案,但我希望它更简单。基本上我只使用它来选择画笔工具并使用一个按钮来切换橡皮擦工具。这样我只需要在我的Wacom平板电脑上使用一个按钮。

#target photoshop

if (getTool() == 'paintbrushTool') {
    setTool('eraserTool');
} else {
    setTool('paintbrushTool');
}

// https://forums.adobe.com/thread/579195
function getTool(){  
    var ref = new ActionReference();   
    ref.putEnumerated( charIDToTypeID("capp"), charIDToTypeID("Ordn"), charIDToTypeID("Trgt") );   
    var cTool = typeIDToStringID(executeActionGet(ref).getEnumerationType(stringIDToTypeID('tool')));  
    return cTool;  
}

// https://www.ps-scripts.com/viewtopic.php?f=68&t=11342&p=152772
function setTool(tool) {
    var desc9 = new ActionDescriptor();
    var ref7 = new ActionReference();
    ref7.putClass( app.stringIDToTypeID(tool) );
    desc9.putReference( app.charIDToTypeID('null'), ref7 );
    executeAction( app.charIDToTypeID('slct'), desc9, DialogModes.NO );
}
// Tool names (use quoted strings, e.g. 'moveTool')
// moveTool
// marqueeRectTool
// marqueeEllipTool
// marqueeSingleRowTool
// marqueeSingleColumnTool
// lassoTool
// polySelTool
// magneticLassoTool
// quickSelectTool
// magicWandTool
// cropTool
// sliceTool
// sliceSelectTool
// spotHealingBrushTool
// magicStampTool
// patchSelection
// redEyeTool
// paintbrushTool
// pencilTool
// colorReplacementBrushTool
// cloneStampTool
// patternStampTool
// historyBrushTool
// artBrushTool
// eraserTool
// backgroundEraserTool
// magicEraserTool
// gradientTool
// bucketTool
// blurTool
// sharpenTool
// smudgeTool
// dodgeTool
// burnInTool
// saturationTool
// penTool
// freeformPenTool
// addKnotTool
// deleteKnotTool
// convertKnotTool
// typeCreateOrEditTool
// typeVerticalCreateOrEditTool
// typeCreateMaskTool
// typeVerticalCreateMaskTool
// pathComponentSelectTool
// directSelectTool
// rectangleTool
// roundedRectangleTool
// ellipseTool
// polygonTool
// lineTool
// customShapeTool
// textAnnotTool
// soundAnnotTool
// eyedropperTool
// colorSamplerTool
// rulerTool
// handTool
// zoomTool

答案 1 :(得分:0)

在AppleScript中更简单。这是我与Wacom一起使用的小库脚本:

1075    q = ngx_queue_middle(locations);
…

答案 2 :(得分:0)

您可以尝试使用photoshop-python-api

from photoshop import Session

with Session() as ps:
    print(ps.app.currentTool)

https://github.com/loonghao/photoshop-python-api