Variables and blend modes

Anyone, especially newbies, asking for help with Photoshop Scripting and Photoshop Automation - as opposed to those contributing to discussion about an aspect of Photoshop Scripting

Moderators: Tom, Kukurykus

Sebastien PICONNIER

Variables and blend modes

Post by Sebastien PICONNIER »

Hello,

Is there a simplier way to do that:
I want to just modify some parameters in the head of my script and then execute the script with it.
If it is easy for layer opacity, It is not the same for blend mode . I have to declare a variable for each blend mode first then enter my parameters.
I want my parameters to be first and alone and execute the rest of the script from an included external source.
From this order it doesn't work.

Code: Select all// template

// define all the ty of blendmode
var COLORBLEND = BlendMode.COLORBLEND;
var COLORBURN = BlendMode.COLORBURN;
var COLORDODGE = BlendMode.COLORDODGE;
var DARKEN = BlendMode.DARKEN;
var DIFFERENCE = BlendMode.DIFFERENCE;
var DISSOLVE = BlendMode.DISSOLVE;
var EXCLUSION = BlendMode.EXCLUSION;   
var HARDLIGHT = BlendMode.HARDLIGHT;   
var HUE = BlendMode.HUE;
var LIGHTEN = BlendMode.LIGHTEN;   
var LINEARBURN = BlendMode.LINEARBURN;
var LINEARDODGE = BlendMode.LINEARDODGE;
var LINEARLIGHT = BlendMode.LINEARLIGHT;
var LUMINOSITY = BlendMode.LUMINOSITY;
var MULTIPLY = BlendMode.MULTIPLY;
var NORMAL = BlendMode.NORMAL;
var OVERLAY = BlendMode.OVERLAY;
var PASSTHROUGH = BlendMode.PASSTHROUGH;
var PINLIGHT = BlendMode.PINLIGHT;
var SATURATION = BlendMode.SATURATION;
var SCREEN = BlendMode.SCREEN;
var SOFTLIGHT = BlendMode.SOFTLIGHT;
var VIVIDLIGHT = BlendMode.VIVIDLIGHT;

//===========
// Parameters
//===========

//var FilterFileName =;
var FilterBlendMode = DIFFERENCE;
var FilterLayerOpacity = 35;

//var VignetteFileName =;
var VignetteBlendMode = OVERLAY;
var VignetteLayerOpacity = 50;

//var TextureFileName =;
var TextureBlendMode = COLORBLEND;
var TextureLayerOpacity = 50;

//var FrameFilename =;
var FrameBlendMode = COLORDODGE;
var FrameLayerOpacity = 50;

//===========

//===========

//===========
var docRef = app.activeDocument;

//===========
docRef.flatten();

//===========
docRef.activeLayer.isBackgroundLayer = false;
docRef.activeLayer.name = "Original picture";

//===========

var filterLayer = docRef.artLayers.add();
filterLayer .name = "Filter";
filterLayer.blendMode = FilterBlendMode;
filterLayer.opacity = FilterLayerOpacity;

var vignetteLayer = docRef.artLayers.add();
vignetteLayer.name = "Vignette";
vignetteLayer.blendMode = VignetteBlendMode;
vignetteLayer.opacity = VignetteLayerOpacity;

var textureLayer = docRef.artLayers.add();
textureLayer.name = "Texture";
textureLayer.blendMode = TextureBlendMode;
textureLayer.opacity = TextureLayerOpacity;

var frameLayer = docRef.artLayers.add();
frameLayer.name = "Frame";
frameLayer.blendMode = FrameBlendMode;
frameLayer.opacity = FrameLayerOpacity;


Thanks.

Sebastien
User avatar
Kukurykus
Posts: 528
Joined: Mon Jul 25, 2016 12:36 pm

Re: Variables and blend modes

Post by Kukurykus »

Well, I think I did it the easier way than that looked like. However that could be done that 'library of blend modes' launches 'main script' I did it in proper order, as normally a script with a program uses other one as an repository. Note: Put files on a desktop or change path in a script...

A version in one script.

OBJECT STYLE:

Code: Select all

if (documents.length) {
#target photoshop
bringToFront()

obj = {1: 'COLORBLEND', 2: 'COLORBURN', 3: 'COLORDODGE', 4: 'DARKEN', 5: 'DIFFERENCE', 6: 'DISSOLVE',
7: 'EXCLUSION', 8: 'HARDLIGHT', 9: 'HUE', 10: 'LIGHTEN', 11: 'LINEARBURN', 12: 'LINEARDODGE',
13: 'LINEARLIGHT', 14: 'LUMINOSITY', 15: 'MULTIPLY', 16: 'NORMAL', 17: 'OVERLAY', 18: 'PASSTHROUGH',
19: 'PINLIGHT', 20: 'SATURATION', 21: 'SCREEN', 22: 'SOFTLIGHT', 23: 'VIVIDLIGHT'}

for(i in obj) obj[i] = eval('BlendMode.' + obj[i]);

(aD = activeDocument).flatten(); (aL = aD.activeLayer).isBackgroundLayer = 0, aL.name = "Original picture"

for(j = 0, nme = ["Filter", "Vignette", "Texture", "Frame"]; j < nme.length; j++) {
(lyr = aD.artLayers.add()).name = nme[j], lyr.blendMode = obj[[5, 17, 1, 3][j]]
lyr.opacity = 50 - (!j ? 15 : 0), nme.splice(j, 1, lyr)
}
}
else alert('There must be opened at least one document!')
ARRAY STYLE:

Code: Select all

if (documents.length) {
#target photoshop
bringToFront()

arr = ['COLORBLEND', 'COLORBURN', 'COLORDODGE', 'DARKEN', 'DIFFERENCE', 'DISSOLVE', 'EXCLUSION',
'HARDLIGHT', 'HUE', 'LIGHTEN', 'LINEARBURN', 'LINEARDODGE', 'LINEARLIGHT', 'LUMINOSITY', 'MULTIPLY',
'NORMAL', 'OVERLAY', 'PASSTHROUGH', 'PINLIGHT', 'SATURATION', 'SCREEN', 'SOFTLIGHT', 'VIVIDLIGHT']

for(i = 0; i < arr.length; i++) arr.splice(i, 1, eval('BlendMode.' + arr[i]));

(aD = activeDocument).flatten(); (aL = aD.activeLayer).isBackgroundLayer = 0, aL.name = "Original picture"

for(j = 0, nme = ["Filter", "Vignette", "Texture", "Frame"]; j < nme.length; j++) {
(lyr = aD.artLayers.add()).name = nme[j], lyr.blendMode = arr[[4, 16, 0, 2][j]]
lyr.opacity = 50 - (!j ? 15 : 0), nme.splice(j, 1, lyr)
}
}
else alert('There must be opened at least one document!')

A version in two scripts.

OBJECT STYLE:

Blend Mode Library.jsx

Code: Select all

obj = {1: 'COLORBLEND', 2: 'COLORBURN', 3: 'COLORDODGE', 4: 'DARKEN', 5: 'DIFFERENCE', 6: 'DISSOLVE',
7: 'EXCLUSION', 8: 'HARDLIGHT', 9: 'HUE', 10: 'LIGHTEN', 11: 'LINEARBURN', 12: 'LINEARDODGE',
13: 'LINEARLIGHT', 14: 'LUMINOSITY', 15: 'MULTIPLY', 16: 'NORMAL', 17: 'OVERLAY', 18: 'PASSTHROUGH',
19: 'PINLIGHT', 20: 'SATURATION', 21: 'SCREEN', 22: 'SOFTLIGHT', 23: 'VIVIDLIGHT'}

for(i in obj) obj[i] = eval('BlendMode.' + obj[i]);
Blend Mode Script.jsx

Code: Select all

if (documents.length) {
#target photoshop
bringToFront(), eval('#include ' + File('~/Desktop/Blend Mode Library.jsx'));

(aD = activeDocument).flatten(); (aL = aD.activeLayer).isBackgroundLayer = 0, aL.name = "Original picture"

for(j = 0, nme = ["Filter", "Vignette", "Texture", "Frame"]; j < nme.length; j++) {
(lyr = aD.artLayers.add()).name = nme[j], lyr.blendMode = obj[[5, 17, 1, 3][j]]
lyr.opacity = 50 - (!j ? 15 : 0), nme.splice(j, 1, lyr)
}
else alert('There must be opened at least one document!')

ARRAY STYLE:

Blend Mode Library.jsx

Code: Select all

arr = ['COLORBLEND', 'COLORBURN', 'COLORDODGE', 'DARKEN', 'DIFFERENCE', 'DISSOLVE', 'EXCLUSION',
'HARDLIGHT', 'HUE', 'LIGHTEN', 'LINEARBURN', 'LINEARDODGE', 'LINEARLIGHT', 'LUMINOSITY', 'MULTIPLY',
'NORMAL', 'OVERLAY', 'PASSTHROUGH', 'PINLIGHT', 'SATURATION', 'SCREEN', 'SOFTLIGHT', 'VIVIDLIGHT']

for(i = 0; i < arr.length; i++) arr.splice(i, 1, eval('BlendMode.' + arr[i]));
Blend Mode Script.jsx

Code: Select all

if (documents.length) {
#target photoshop
bringToFront(), eval('#include ' + File('~/Desktop/Blend Mode Library.jsx'));

(aD = activeDocument).flatten(); (aL = aD.activeLayer).isBackgroundLayer = 0, aL.name = "Original picture"

for(j = 0, nme = ["Filter", "Vignette", "Texture", "Frame"]; j < nme.length; j++) {
(lyr = aD.artLayers.add()).name = nme[j], lyr.blendMode = arr[[4, 16, 0, 2][j]]
lyr.opacity = 50 - (!j ? 15 : 0), nme.splice(j, 1, lyr)
}
else alert('There must be opened at least one document!')
Attachments
Blend Mode.zip
(968 Bytes) Downloaded 389 times