Javascript para automatizar caminhos para camadas no Photoshop

1

Estou procurando um javascript que possa ser executado no Photoshop. Idealmente, o script converterá uma série de caminhos de recorte em camadas - e, em seguida, preencherá a camada (definida pelo caminho de recorte) com preto. Se possível, gostaria que a camada retivesse o nome do caminho de recorte e também que as camadas aparecessem na mesma ordem dos caminhos de recorte. Por exemplo, se o primeiro caminho de recorte foi chamado "Porta", então eu gostaria que a Camada 1 fosse a seção da porta ... e que ela fosse chamada de "Porta". Além disso, seria bom ter a seleção para ser preenchida com preto. Assim, a camada "Porta" teria a seleção da porta preenchida com preto e tudo o mais seria transparente.

Alguém pode ajudar?

// Create solid fills based on paths array

// hex value: FFFFFF is white, FF0000 is red, and so on.
var color = "000000";
var paths = app.activeDocument.pathItems;
var pathsLength = paths.length;
var newLayers = [];

// create solid fill layers
for(var i = 0; i < pathsLength; i++)
{
   selectPath(paths[i].name);
   createFill(color);
   var fill = app.activeDocument.activeLayer;
   fill.name = paths[i].name;
   newLayers.push(app.activeDocument.activeLayer);
}

/*
// combine shapes
for(var i = 0; i < newLayers.length; i++)
{
   app.activeDocument.activeLayer = newLayers[i];
   selectPath(newLayers[i].name + " Shape Path");
   combineShapes();
}
*/

// select path by name
function selectPath(name)
{
   var idslct = charIDToTypeID( "slct" );
   var desc50 = new ActionDescriptor();
   var idnull = charIDToTypeID( "null" );
   var ref34 = new ActionReference();
   var idPath = charIDToTypeID( "Path" );
   ref34.putName( idPath, name );
   desc50.putReference( idnull, ref34 );
   executeAction( idslct, desc50, DialogModes.NO );
};

// create solid fill based on selected path items
function createFill(hexValue)
{
   var color = new SolidColor();
   color.rgb.hexValue = hexValue != undefined ?  hexValue : "000000";

   var idMk = charIDToTypeID( "Mk  " );
   var desc51 = new ActionDescriptor();
   var idnull = charIDToTypeID( "null" );
   var ref35 = new ActionReference();
   var idcontentLayer = stringIDToTypeID( "contentLayer" );
   ref35.putClass( idcontentLayer );
   desc51.putReference( idnull, ref35 );
   var idUsng = charIDToTypeID( "Usng" );
   var desc52 = new ActionDescriptor();
   var idType = charIDToTypeID( "Type" );
   var desc53 = new ActionDescriptor();
   var idClr = charIDToTypeID( "Clr " );
   var desc54 = new ActionDescriptor();
   var idRd = charIDToTypeID( "Rd  " );
   desc54.putDouble( idRd, color.rgb.red );
   var idGrn = charIDToTypeID( "Grn " );
   desc54.putDouble( idGrn, color.rgb.green );
   var idBl = charIDToTypeID( "Bl  " );
   desc54.putDouble( idBl, color.rgb.blue );
   var idRGBC = charIDToTypeID( "RGBC" );
   desc53.putObject( idClr, idRGBC, desc54 );
   var idsolidColorLayer = stringIDToTypeID( "solidColorLayer" );
   desc52.putObject( idType, idsolidColorLayer, desc53 );
   var idcontentLayer = stringIDToTypeID( "contentLayer" );
   desc51.putObject( idUsng, idcontentLayer, desc52 );
   executeAction( idMk, desc51, DialogModes.NO );
};

// select color fill items and combine shapes
function combineShapes()
{
   var idslct = charIDToTypeID( "slct" );
   var desc55 = new ActionDescriptor();
   var idnull = charIDToTypeID( "null" );
   var ref36 = new ActionReference();
   var idPath = charIDToTypeID( "Path" );
   var idPath = charIDToTypeID( "Path" );
   var idvectorMask = stringIDToTypeID( "vectorMask" );
   ref36.putEnumerated( idPath, idPath, idvectorMask );
   var idLyr = charIDToTypeID( "Lyr " );
   var idOrdn = charIDToTypeID( "Ordn" );
   var idTrgt = charIDToTypeID( "Trgt" );
   ref36.putEnumerated( idLyr, idOrdn, idTrgt );
   desc55.putReference( idnull, ref36 );
   executeAction( idslct, desc55, DialogModes.NO );
};
    
por bryan akers 26.06.2013 / 19:59

1 resposta

0

Seleção de cores.

var color = app.foregroundColor.rgb.hexValue;

    
por 23.08.2013 / 23:07