Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

174
Visualizações
Selección circular de secuencias de comandos de Photoshop en una nueva capa

Estoy tratando de agregar capas dinámicamente en un script de Photoshop a través de JavaScript. Las capas tienen una selección circular, no rectangular o triangular.

Por ejemplo rectangulares:

 var RectangleSelection = Array( Array(x, y), // start position Array(x + width, y), // right top Array(x + width, y + height), // right bottom Array(x, y + height), // left bottom Array(x, y) // left top );

Quiero hacer lo mismo ahora con una selección circular, ¿tal vez con una función como esta? Estoy atascado cómo definir la función:

 var circleSelection = makeCircleSelection(x,y,radius);

Y devolverlo en una selección que luego puedo colocar en una nueva capa:

 var layer = document.artLayers.add(); document.selection.select(circleSelection); document.selection.copy(); document.paste();

Los documentos no tienen una respuesta y esta respuesta me resulta difícil para mi caso de uso.

¡Muchos gracias!

about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

Puede utilizar la siguiente función personalizada makeCircleSelection . Como puede ver, su firma tiene tres parámetros, a saber, x , y y radius .

 /** * Make a circular selection. * @param {Number} x The center of the circular selection on the x-axis. * @param {Number} y The center of the circular selection on the y-axis. * @param {Number} radius The radius of the circular selection. * @returns {Object} A reference to the newly created circular selection. */ function makeCircleSelection(x, y, radius) { var d1 = new ActionDescriptor(); var d2 = new ActionDescriptor(); var ref = new ActionReference(); d1.putUnitDouble(charIDToTypeID('Top '), charIDToTypeID('#Pxl'), y - radius); d1.putUnitDouble(charIDToTypeID('Left'), charIDToTypeID('#Pxl'), x - radius); d1.putUnitDouble(charIDToTypeID('Btom'), charIDToTypeID('#Pxl'), y + radius); d1.putUnitDouble(charIDToTypeID('Rght'), charIDToTypeID('#Pxl'), x + radius); ref.putProperty(charIDToTypeID('Chnl'), charIDToTypeID('fsel')); d2.putReference(charIDToTypeID('null'), ref); d2.putObject(charIDToTypeID('T '), charIDToTypeID('Elps'), d1); d2.putUnitDouble(charIDToTypeID('Fthr'), charIDToTypeID('#Pxl'), 0); d2.putBoolean(charIDToTypeID('AntA'), true); executeAction(charIDToTypeID('setd'), d2, DialogModes.NO); return document.selection; }

Luego puede hacer lo siguiente para cumplir con sus requisitos:

 // Example usage var document = app.activeDocument; var circleSelection = makeCircleSelection(200, 100, 100); circleSelection.copy(); document.artLayers.add(); document.paste();

Nota: deberá asegurarse de que existan píxeles dentro de la selección circular en la capa de arte activa desde la que copia. El área no puede ser transparente.

about 4 years ago · Juan Pablo Isaza Relatório

0

¡Gracias por responder a mi pregunta! La solución funciona perfecta.

Si quieres sígueme en instagram .

Definitivamente usaré el código para mi proyecto de arte digital.

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda