I’m trying to draw closed path and fill it with some collor. Here the code
startRulerUnits = app.preferences.rulerUnits
startTypeUnits = app.preferences.typeUnits
startDisplayDialogs = app.displayDialogs
//change settings
app.preferences.rulerUnits = Units.PIXELS
app.preferences.typeUnits = TypeUnits.PIXELS
app.displayDialogs = DialogModes.NO
var AD = activeDocument;
var bBox = new Array();
bBox[0] = 10;
bBox[1] = 10;
bBox[2] = 50;
bBox[3] = 10;
bBox[4] = 50;
bBox[5] = 50;
bBox[6] = 10;
bBox[7] = 50;
var line = new Array();
line[0] = new PathPointInfo;
line[0].kind = PointKind.CORNERPOINT;
line[0].anchor = [bBox[0],bBox[1]];
line[0].leftDirection = line[0].anchor;
line[0].rightDirection = line[0].anchor;
line[1] = new PathPointInfo;
line[1].kind = PointKind.CORNERPOINT;
line[1].anchor = [bBox[2],bBox[3]];
line[1].leftDirection = line[1].anchor;
line[1].rightDirection = line[1].anchor;
line[2] = new PathPointInfo;
line[2].kind = PointKind.CORNERPOINT;
line[2].anchor = [bBox[4],bBox[5]];
line[2].leftDirection = line[2].anchor;
line[2].rightDirection = line[2].anchor;
line[3] = new PathPointInfo;
line[3].kind = PointKind.CORNERPOINT;
line[3].anchor = [bBox[6],bBox[7]];
line[3].leftDirection = line[3].anchor;
line[3].rightDirection = line[3].anchor;
var lineSubPath= new Array();
lineSubPath[0] = new SubPathInfo();
lineSubPath[0].operation = ShapeOperation.SHAPEXOR;
lineSubPath[0].closed = true;
lineSubPath[0].entireSubPath = line;
var path = AD.pathItems.add("A", lineSubPath);
//var paperShape = AD.artLayers.add();
var colorRef = new SolidColor;
colorRef.rgb.red = 255
colorRef.rgb.green = 100;
colorRef.rgb.blue = 10;
path.fillPath(colorRef, ColorBlendMode.COLOR,100,true,0,true,true);
//shapeLayer.applyStyle("ransom_note");*/
app.preferences.rulerunits = startRulerUnits
app.preferences.typeunits = startTypeUnits
app.displayDialogs = startDisplayDialogs
path is drawn, but error apears while filling
fillPath is not a function.
Can anybody help?
P.S. Sorry for my English
pathis a property ofApplication, Photoshop does not understand when you try to applyfillPathto it, even if you had declared it as a variable name… you just gets Photoshop confused on what to do.You should simply change that’s variable name to something like
myPathand thenmyPath.fillPath(colorRef, ColorBlendMode.COLOR,100,true,0,true,true);will work.I would also make a little change in the
ColorBlendMode, if you set it toCOLORyou won’t be able to actually see the color you are applying, and it will seem that the script is not working at all.Try
myPath.fillPath(colorRef, ColorBlendMode.NORMAL,100,true,0,true,true);and you’re done!