• Global community
    • Language:
      • Deutsch
      • English
      • Español
      • Français
      • Português
  • 日本語コミュニティ
    Dedicated community for Japanese speakers
  • 한국 커뮤니티
    Dedicated community for Korean speakers
Exit
0

PS scripting problem, script making bleed's

Community Beginner ,
Sep 06, 2024 Sep 06, 2024

Copy link to clipboard

Copied

Hello i want to have a script takat creates bleeds,

Usually when im dong this by hand I do this:
1. create naew layer and mae it "bleed", fill it witch bucket tool

2.Expand canvas s

3.Select bleed layer with CMD, clear it, reverse the selection an fill it with color

 

But i cant figure out how to do step 3. I can ony select the whole layer and not the only filed part

 

This is my code:

 

 

var bleedLayer = app.activeDocument.artLayers.add();
bleedLayer.name = "bleed";

bleedLayer.move(app.activeDocument.artLayers[0], ElementPlacement.PLACEBEFORE);

app.activeDocument.selection.selectAll();
app.activeDocument.selection.fill(app.foregroundColor);
app.activeDocument.selection.deselect();

var doc = app.activeDocument;
var originalWidth = doc.width;
var originalHeight = doc.height;
var newWidth = originalWidth + 10;
var newHeight = originalHeight + 10;
doc.resizeCanvas(newWidth, newHeight, AnchorPosition.MIDDLECENTER);

doc.activeLayer = bleedLayer;
doc.activeLayer = doc.artLayers.getByName("bleed");
doc.selection.load(doc.activeLayer.channels["Transparency"], SelectionType.REPLACE);
doc.selection.clear();
doc.selection.invert();
doc.selection.fill(app.foregroundColor);
doc.selection.deselect();
TOPICS
Actions and scripting , macOS

Views

125

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Adobe
Community Expert ,
Sep 06, 2024 Sep 06, 2024

Copy link to clipboard

Copied

Could you please post screenshots with the pertinent Panels (Toolbar, Layers, Options Bar, …) visible to illustrate the process? 

 

loadTransparency (false);
////// load transparency //////
function loadTransparency (theInvert) {
// =======================================================
var idsetd = charIDToTypeID( "setd" );
    var desc3 = new ActionDescriptor();
    var idnull = charIDToTypeID( "null" );
        var ref2 = new ActionReference();
        var idChnl = charIDToTypeID( "Chnl" );
        var idfsel = charIDToTypeID( "fsel" );
        ref2.putProperty( idChnl, idfsel );
    desc3.putReference( idnull, ref2 );
    var idT = charIDToTypeID( "T   " );
        var ref3 = new ActionReference();
        var idChnl = charIDToTypeID( "Chnl" );
        var idChnl = charIDToTypeID( "Chnl" );
        var idTrsp = charIDToTypeID( "Trsp" );
        ref3.putEnumerated( idChnl, idChnl, idTrsp );
    desc3.putReference( idT, ref3 );
    desc3.putBoolean(charIDToTypeID("Invr"), theInvert);
executeAction( idsetd, desc3, DialogModes.NO );
};

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Beginner ,
Sep 09, 2024 Sep 09, 2024

Copy link to clipboard

Copied

LATEST

Hello! Thank you very much it works witch your metchod!

I'm coping my code here so if anyone in the future needs something similar there's an answer

// Funkcja do ładowania przezroczystości jako zaznaczenia
function loadTransparency(theInvert) {
    var idsetd = charIDToTypeID("setd");
    var desc3 = new ActionDescriptor();
    var idnull = charIDToTypeID("null");
    var ref2 = new ActionReference();
    var idChnl = charIDToTypeID("Chnl");
    var idfsel = charIDToTypeID("fsel");
    ref2.putProperty(idChnl, idfsel);
    desc3.putReference(idnull, ref2);
    var idT = charIDToTypeID("T   ");
    var ref3 = new ActionReference();
    var idChnl = charIDToTypeID("Chnl");
    var idTrsp = charIDToTypeID("Trsp");
    ref3.putEnumerated(idChnl, idChnl, idTrsp);
    desc3.putReference(idT, ref3);
    desc3.putBoolean(charIDToTypeID("Invr"), theInvert);
    executeAction(idsetd, desc3, DialogModes.NO);
}

// Tworzenie nowej warstwy i nadanie jej nazwy "bleed"
var bleedLayer = app.activeDocument.artLayers.add();
bleedLayer.name = "bleed";

// Przeniesienie warstwy "bleed" na samą górę
bleedLayer.move(app.activeDocument.artLayers[0], ElementPlacement.PLACEBEFORE);

// Wypełnienie warstwy "bleed" za pomocą narzędzia Paint Bucket Tool
app.activeDocument.selection.selectAll();
app.activeDocument.selection.fill(app.foregroundColor);
app.activeDocument.selection.deselect();

// Powiększenie rozmiaru canvasu o 10 mm z każdej strony
var doc = app.activeDocument;
var originalWidth = doc.width;
var originalHeight = doc.height;
var newWidth = originalWidth + 10; // 10mm to pixele
var newHeight = originalHeight + 10;
doc.resizeCanvas(newWidth, newHeight, AnchorPosition.MIDDLECENTER);

// Zaznaczenie widocznych elementów na warstwie "bleed"
doc.activeLayer = bleedLayer;
loadTransparency(false); // Załaduj nieprzezroczyste piksele jako zaznaczenie

// Wyczyszczenie zaznaczonych pikseli na warstwie "bleed"
doc.selection.clear(); 

// Odwrócenie zaznaczenia, aby zaznaczyć resztę
doc.selection.invert(); 

// Wypełnienie zaznaczenia kolorem pierwszego planu
doc.selection.fill(app.foregroundColor);

// Odznaczenie zaznaczenia
doc.selection.deselect();

 

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines