- ImageMagick рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдХрдВрд╕реЛрд▓ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рд╣реИ рдЬреЛ рдмрд╣реБрдд рд╕рд╛рд░реА рдЪреАрдЬреЗрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИ
- GIMP рдкрд░ - рд╕реНрдХреАрдо (рд▓рд┐рд╕реНрдк рдмреЛрд▓реА) рдФрд░ рдкрд╛рдпрдерди рд╣реИ
- рдирд┐рдпрдорд┐рдд рд╕рд╛рдзрди: PHP + gd / Powershell + System.Drawing / Python + PIL
- рдлрд╝реЛрдЯреЛрд╢реЙрдк рдореЗрдВ JScript, VBScript рдпрд╛ AppleScript рдкрд░
рд╣рдореЗрдВ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА
- Adobe Photoshop CS5 (CS4 рдЙрдкрд▓рдмреНрдз)
- Adobe рдПрдХреНрд╕реНрдЯреЗрдВрдбрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЯреВрд▓рдХрд┐рдЯ (рдлрд╝реЛрдЯреЛрд╢реЙрдк рд╡рд┐рддрд░рдг рдХреЗ рд╕рд╛рде рд╢рд╛рдорд┐рд▓)
- Jscript рдХрд╛ рдЬреНрдЮрд╛рди
- рдХреБрдЫ рддрд╕реНрд╡реАрд░реЗрдВ
рд╕рд┐рджреНрдзрд╛рдВрдд
рдлрд╝реЛрдЯреЛрд╢реЙрдк рдореЗрдВ рдПрдХ COM рдПрдкреАрдЖрдИ рд╣реИ рдЬреЛ рдлрд╝реЛрдЯреЛрд╢реЙрдк рдХреЗ рдХрдИ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдХрд╡рд░ рдХрд░рддрд╛ рд╣реИред рдмреЗрд╢рдХ, рдпрд╣ рдЬреЗрдПрд╕ рдпрд╛ рд╡реАрдмреАрдПрд╕ рд▓рд┐рдкрд┐рдпреЛрдВ рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред Adobe рдХреГрдкрдпрд╛ рдЕрдкрдиреЗ IDE рдХреЗ рд╕рд╛рде рд╕реНрд╡рддрдГ рдкреВрд░реНрдг рдФрд░ рд╡рд┐рд░рд╛рдо рдмрд┐рдВрджреБ рдХреЗ рд╕рд╛рде рдбреЗрд╡рд▓рдкрд░реНрд╕ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдЗрд╕рдореЗрдВ рд╕рдорд░реНрдерд┐рдд рднрд╛рд╖рд╛рдПрдВ JScript, VBScript (Win) рдФрд░ AppleScript (Mac) рд╣реИрдВред рдореИрдВ JScript рдкрд░ рдмрд╕ рдЧрдпрд╛, рдХреНрдпреЛрдВрдХрд┐ рдЬреНрдпрд╛рджрд╛рддрд░ рд▓реЛрдЧ рдЗрд╕реЗ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╕рдордЭреЗрдВрдЧреЗред
рдЖрдИрдбреАрдИ
рдЙрд╕рдХрд╛ рдирд╛рдо рдПрдХреНрд╕рдЯреЗрдВрдбрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЯреВрд▓рдХрд┐рдЯ рд╣реИред рдпрд╣рд╛рдБ рдпрд╣ рд╣реИ:

рдореБрдЭреЗ рдЙрд╕рд╕реЗ рдХреНрдпрд╛ рдорд┐рд▓рд╛:
- рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдПрдХ рдореЛрдиреЛрдкреЙрдЬрд╝реНрдб рдлрд╝реЙрдиреНрдЯ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдХреБрдЫ рдмрдХрд╡рд╛рд╕ рд╣реИред рдореИрдВрдиреЗ рдЙрд╕реЗ рд╡рд╣реАрдВ рдареАрдХ рдХрд░ рджрд┐рдпрд╛
- рдХреЛрдИ рдШрдбрд╝реА рдирд╣реАрдВред рдЗрд╕рдХреЗ рд▓рд┐рдП рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред рдЙрдирдХреА рднреВрдорд┐рдХрд╛ рдбреЗрдЯрд╛ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдФрд░ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрдВрд╕реЛрд▓ рджреНрд╡рд╛рд░рд╛ рдХреА рдЬрд╛рддреА рд╣реИ
- рдЖрджрдд рд╕реЗ рдмрд╛рд╣рд░, рдореИрдВрдиреЗ ctrl-D (Resharper рдореЗрдВ рд▓рд╛рдЗрди рдХреЛ рдХреЙрдкреА рдХрд┐рдпрд╛) - рдФрд░ рд▓реЛ рдФрд░ рдирд┐рд╣рд╛рд░рдирд╛, рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ!
- рдкреНрд░реЛрдлрд╛рдЗрд▓рд┐рдВрдЧ рд╣реИ
- рд╕рд╣рдиреАрдп рд╕рд╛рдордЧреНрд░реА рдкрд░ рдПрдХ рд╕рд╣рд╛рдпрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди msdn рдХреЗ рд╕реНрддрд░ рддрдХ рдирд╣реАрдВ рдкрд╣реБрдБрдЪрддреА рд╣реИред
рдпрд╣ рдЕрдЪреНрдЫрд╛ рд╣реИ рдХрд┐ jsx рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рдлрд╝рд╛рдЗрд▓ тЖТ рдмрд╛рдЗрдирд░реА рдХреЗ рд░реВрдк рдореЗрдВ рдирд┐рд░реНрдпрд╛рдд), рдФрд░ jsxbin рдПрдХреНрд╕рдЯреЗрдВрд╢рди рд╡рд╛рд▓реА рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдИ рдЬрд╛рдПрдЧреАред рдЗрд╕рдХреА рд╕рд╛рдордЧреНрд░реА рдХреБрдЫ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реЛрдЧреА:
рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ, рдЦрд╛рд╕рдХрд░ рдпрджрд┐ рдЖрдкрдХреЛ рдСрд░реНрдбрд░ рдХреЗ рд▓рд┐рдП рдлрд╝реЛрдЯреЛрд╢реЙрдк рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд┐рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдФрд░ рд╕реНрд░реЛрдд рдирд╣реАрдВ рджреЗрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдореИрдВрдиреЗ рдЗрд╕реЗ рд╡рд┐рдШрдЯрд┐рдд рдХрд░рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдирд╣реАрдВ рд╕рдордЭрд╛, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЪрд░ рдмрджрд▓рддрд╛ рд╣реИ рдФрд░ рдлрд┐рд░ рднреА рдХреБрдЫ рдЕрдиреБрдХреВрд▓рди рдХрд░рддрд╛ рд╣реИред@JSXBIN@ES@2.0@MyBbyBnAIMVbyBn0AHJWn
рддреЛ, рдкрд╣рд▓реА рдирдЬрд╝рд░ рдореЗрдВ рдЖрдИрдбреАрдИ рдЕрд╕рд╣рдЬ рд╣реИ, рд▓реЗрдХрд┐рди рд▓рдЧрднрдЧ 30 рдорд┐рдирдЯ рддрдХ рдЗрд╕рдореЗрдВ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдкрдХреЛ рдЗрд╕рдХреА рдЖрджрдд рд╣реЛ рдЬрд╛рддреА рд╣реИред
рд╕реНрдХреНрд░рд┐рдкреНрдЯрд┐рдВрдЧ рднрд╛рд╖рд╛
рдпрд╣ рд╡рд╛рдХреНрдпрд╛рдВрд╢ рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ
рдпрд╣ рдПрдбреЛрдм рд▓рд╛рдЗрдмреНрд░реЗрд░реАрдЬрд╝ рдХреЗ рд╕рд╛рде рдирд┐рдпрдорд┐рдд рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣реИред#target photoshop
рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдХрд░рдг рд╣реИрдВ, рд╕реЙрдХреЗрдЯ, рдкреНрд░рддрд┐рдмрд┐рдВрдм, рдПрдХреНрд╕рдПрдордПрд▓ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдердиред рдХреНрд▓рд╛рд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рд╣реИред
рдлрд╝реЛрдЯреЛрд╢реЙрдк рд╕реЗ тАЛтАЛрдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХ рд╡реИрд╢реНрд╡рд┐рдХ рдРрдк рдСрдмреНрдЬреЗрдХреНрдЯ рд╣реИ, ActiveXObject рдХреЛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдЗрд╕рдореЗрдВ рд╕рдХреНрд░рд┐рдп рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ app.activeDocumet рд╣реИред рдЪреЗрддрд╛рд╡рдиреА рдлрд╝рдВрдХреНрд╢рди рдлрд╝реЛрдЯреЛрд╢реЙрдк рдореЗрдВ рдПрдХ рд╕рдВрджреЗрд╢ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред
рдЬрдм рддреНрд░реБрдЯрд┐ рджреБрд░реНрдШрдЯрдирд╛рдЧреНрд░рд╕реНрдд рд╣реЛ рдЬрд╛рддреА рд╣реИ, рддреЛ рдХреБрдЫ рднреА рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪреБрдкрдЪрд╛рдк рдирд┐рд╖реНрдкрд╛рджрди рдмрдВрдж рдХрд░ рджреЗрддреА рд╣реИ, рдЬреИрд╕реЗ рдХрд┐ рдХреЛрдИ рднреА рдирд╣реАрдВ рдерд╛ред
рдореБрдЭреЗ рдкрд╕рдВрдж рдЖрдпрд╛ рдХрд┐ рдХреИрд╕реЗ рдорд╛рдк (px, pt, cm, mm) рдПрдХ рджреВрд╕рд░реЗ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рд╣реЛрддреЗ рд╣реИрдВ:
рдХреНрдпреЛрдВрдХрд┐ ExtendScript рдХреНрд░реЙрд╕-рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рд╣реИ, рдлрд╝рд╛рдЗрд▓ рдкрдереЛрдВ рдХреЛ / d / Temp / ... рдХреЗ рд░реВрдк рдореЗрдВ рджрд░реНрд╢рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИapp.activeDocument.width. as ( "px" );
рдЬреАрд╡рд┐рдд рдЙрджрд╛рд╣рд░рдг
рдХрд╛рд░реНрдп: рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ 100 рдлрд╛рдЗрд▓реЗрдВ рд╣реИрдВред рдпрд╣ рдЙрди рдкреНрд░рддреНрдпреЗрдХ рд▓реЛрдЧреЛ рдореЗрдВ рдПрдореНрдмреЗрдб рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдЬреЛ PSD рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╣реИрдВред
рд▓реЛрдЧреЛ рдЙрджрд╛рд╣рд░рдг:

рдФрд░ рдпрд╣рд╛рдБ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣реИ:
рд╕реНрдХреНрд░рд┐рдкреНрдЯ рддреИрдпрд╛рд░ рд╣реИред рдпрд╣ PSD рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рд▓реЛрдЧреЛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдирд╛ рд╣реБрдЖ рд╣реИ - рдЬреИрд╕реЗ рдХрд┐ рдЕрдВрджрд░ рдПрдХ рдкрд╛рда рдкрд░рдд рдереА рдЬрд┐рд╕ рдкрд░ рд▓реЛрдЧреЛ рдХреЛ рд░рдЦрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред#target photoshop
app.bringToFront(); // Photoshop. , , .
var Constants = { /* - */ }
ProcessDir(Constants.InputDir, Constants.OutputDir);
function ProcessDir(dir, outDir) {
var folder = Folder(dir); // Adobe-
var files = folder.getFiles(Constants.FileMask); // , (*.jpg,*.png) .
var outFolder = Folder(outDir);
if (!outFolder.exists) {
if (!outFolder.create()) {
alert( "Cannot create output folder" );
return ; //
}
}
var totalFiles = 0;
for ( var fileNum in files) {
var outFile = GetOutputFileName(files[fileNum], outFolder.fullName); //
AddLogoToFile(files[fileNum], outFile); // ,
totalFiles++;
}
alert(totalFiles + " files processed" ); // Photoshop-
}
function AddLogoToFile(file, outputFile) {
var photoFile = File(file); // , open
var logoFile = File(Constants.AddLogo.LogoPath);
app.open(logoFile); //
app.activeDocument.artLayers[ "Text" ].copy(); // ArtLayers тАУ . "Text"
var logoWidth = app.activeDocument.width. as ( "px" );
var logoHeight = app.activeDocument.height. as ( "px" );
app.activeDocument.close();
app.open(photoFile); //
var width = app.activeDocument.width. as ( "px" );
var height = app.activeDocument.height. as ( "px" );
var logoLayer = app.activeDocument.artLayers.add(); // ,
logoLayer.name = "Logo" ; //
app.activeDocument.paste(); // clipboard
var shape = [ // Photoshop ; ,
[(width - logoWidth) / 2, (height - logoHeight) / 2],
[(width - logoWidth) / 2, (height + logoHeight) / 2],
[(width + logoWidth) / 2, (height + logoHeight) / 2],
[(width + logoWidth) / 2, (height - logoHeight) / 2]
];
app.activeDocument.selection.select(shape);
app.activeDocument.selection.translate( // selection
new UnitValue((width - logoWidth)/ 2, "px" ),
new UnitValue((height - logoHeight) / 2, "px" ));
var minImageDimension = Math.min(width, height); // , 5
var logoScaleMultiplier = minImageDimension / 5 / logoWidth * 100;
app.activeDocument.selection.resize(logoScaleMultiplier, logoScaleMultiplier, AnchorPosition.BOTTOMRIGHT); //
app.activeDocument.selection.deselect();
app.activeDocument.artLayers[ "Logo" ].opacity = 75; //
app.activeDocument.artLayers[ "Logo" ].blendMode = BlendMode.LUMINOSITY; // ,
// blending options! .
SaveFile(outputFile); //
}
function SaveFile(outputFile) {
var isPng = /png$/i.test(outputFile);
var saveOptions;
if (isPng) {
saveOptions = new PNGSaveOptions();
} else {
saveOptions = new JPEGSaveOptions(); /* */
}
app.activeDocument.saveAs(File(outputFile), saveOptions, true , Extension.LOWERCASE)
app.activeDocument.close(SaveOptions.DONOTSAVECHANGES); //
}
рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ рдЗрд╕рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг:

рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдкрд╛рд╕реНрдЯрдмрд┐рди рдкрд░ рд░рдЦреА рдЧрдИ рд╣реИред
рдУрд╣ рджреБрдЦрдж
рдлрд╝реЛрдЯреЛрд╢реЙрдк рдореЗрдВ рд╕рдмрд╕реЗ рд╕реНрд╡рд╛рджрд┐рд╖реНрдЯ рдЪреАрдЬ рд╕рдореНрдорд┐рд╢реНрд░рдг рд╡рд┐рдХрд▓реНрдк рд╣реИ! рдФрд░ рдПрдкреАрдЖрдИ рдореЗрдВ рдХреЛрдИ рдирд╣реАрдВ рд╣реИрдВред CopyLayerStyle рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ GUI рд╕реЗ рднреА рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ (рдЖрдк рдЗрд╕реЗ рдбреНрд░реЙрдк рд╢реИрдбреЛ рдХреЗ рд╕рд╛рде рдЦреЗрд▓рдХрд░ рдЬрд╛рдВрдЪ рд╕рдХрддреЗ рд╣реИрдВ)ред рдЗрд╕рд▓рд┐рдП, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рд╣рдо рд▓реЛрдЧреЛ рдХреЛ рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдкрд░рд┐рдгрд╛рдо рдмрд╣реБрдд рд╣реА ImageMagick рд╕реЗ рдЕрдзрд┐рдХ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред
UPD: рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реЗ рд╢реИрд▓рд┐рдпреЛрдВ рдХреЛ рдЬрд▓реНрджреА рдФрд░ рдЖрд╕рд╛рдиреА рд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рджреЛ рддрд░реАрдХреЗ рд╣реИрдВ:
- рдЗрди рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЗ рд╕рд╛рде рдПрдХреНрд╢рди рд▓рд┐рдЦрдирд╛ рдФрд░ рдЗрд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдирд╛ ( рд╕рд░реНрдЬ 2 рдХреЗ рд╕рдВрдХреЗрдд рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж)
- рдкреНрд░реАрд╕реЗрдЯ рдореЗрдВ рд╢реИрд▓реА рдХреЛ рдмрдЪрд╛рдПрдВ ("рд╕рдореНрдорд┐рд╢реНрд░рдг рд╡рд┐рдХрд▓реНрдк" рд╕рдВрд╡рд╛рдж рдореЗрдВ "рдирдИ рд╢реИрд▓реА" рдмрдЯрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ)
рдЕрдирд┐рд░реНрджрд┐рд╖реНрдЯ рдПрдкреАрдЖрдИ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдереЛрдбрд╝рд╛
рдбреЙрдХ рдкрдврд╝рдиреЗ рдХреЗ рдмрд╛рдж (рдЖрдк рдЙрдиреНрд╣реЗрдВ% рдореЗрдВ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ ProgramFiles% Adobe \ Adobe Photoshop CS5 \ Scripting \ Documents \), рд╣рдореЗрдВ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдлрд╝реЛрдЯреЛрд╢реЙрдк рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд░рд┐рдХреЙрд░реНрдб рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП:
- "ProgramListener.8li" рдлрд╝рд╛рдЗрд▓ рдХреЛ% ProgramFiles% Adobe \ Adobe Photoshop CS5 \ Scripting \ Utilities рд╕реЗ рдХреЙрдкреА рдХрд░реЗрдВред% ProgramFiles% Adobe \ Adobe рдлрд╝реЛрдЯреЛрд╢реЙрдк CS5 \ рдкреНрд▓рдЧ-рдЗрди \ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░реЗрдВ
- (рдкреБрдирдГ) рдлреЛрдЯреЛрд╢реЙрдк рдЪрд▓рд╛рдПрдВ
- рдЙрд╕ рдХреНрд░рд┐рдпрд╛ рдХреЛ рдХрд░реЗрдВ рдЬрд┐рд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЖрдк рдЬрд╛рдирдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ
- рдЕрдкрдиреЗ рдбреЗрд╕реНрдХрдЯреЙрдк рдкрд░ ScriptListener.jsx рдФрд░ ScriptListener.vbs рдЦреЛрдЬреЗрдВ
- ScriptListener.8li рдХреЛ рд╣рдЯрд╛рдирд╛ рди рднреВрд▓реЗрдВ (рдпрд╣ рдлрд╝реЛрдЯреЛрд╢реЙрдк рдХреЛ рдзреАрдорд╛ рдХрд░ рджреЗрддрд╛ рд╣реИ)
рдЖрдкрдХреЛ рдХреНрдпрд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХреЛрдб рдХреНрдпрд╛ рдХрд░рддрд╛ рд╣реИ? рдпрд╣ рдкрд░рдд рдореЗрдВ рдПрдХ рдбреНрд░реЙрдк рд╢реИрдбреЛ рдЬреЛрдбрд╝рддрд╛ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк "DrSh" рдирд╛рдо рд╕реЗ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред рдореБрдЭреЗ рд╕рдВрджреЗрд╣ рд╣реИ рдХрд┐ рдлрд╝реЛрдЯреЛрд╢реЙрдк рдХреЗ рдЕрдВрджрд░ рдЬреАрдпреВрдЖрдИ рдореЗрдВ рдирд┐рдпрдВрддреНрд░рдг рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИредvar idsetd = charIDToTypeID( "setd" );
var desc15 = new ActionDescriptor();
var idnull = charIDToTypeID( "null" );
var ref6 = new ActionReference();
var idPrpr = charIDToTypeID( "Prpr" );
var idLefx = charIDToTypeID( "Lefx" );
ref6.putProperty( idPrpr, idLefx );
var idLyr = charIDToTypeID( "Lyr " );
var idOrdn = charIDToTypeID( "Ordn" );
var idTrgt = charIDToTypeID( "Trgt" );
ref6.putEnumerated( idLyr, idOrdn, idTrgt );
desc15.putReference( idnull, ref6 );
var idT = charIDToTypeID( "T " );
var desc16 = new ActionDescriptor();
var idScl = charIDToTypeID( "Scl " );
var idPrc = charIDToTypeID( "#Prc" );
desc16.putUnitDouble( idScl, idPrc, 100.000000 );
var idDrSh = charIDToTypeID( "DrSh" );
var desc17 = new ActionDescriptor();
var idenab = charIDToTypeID( "enab" );
desc17.putBoolean( idenab, true );
var idMd = charIDToTypeID( "Md " );
var idBlnM = charIDToTypeID( "BlnM" );
var idMltp = charIDToTypeID( "Mltp" );
desc17.putEnumerated( idMd, idBlnM, idMltp );
var idClr = charIDToTypeID( "Clr " );
var desc18 = new ActionDescriptor();
var idRd = charIDToTypeID( "Rd " );
desc18.putDouble( idRd, 0.000000 );
var idGrn = charIDToTypeID( "Grn " );
desc18.putDouble( idGrn, 0.000000 );
var idBl = charIDToTypeID( "Bl " );
desc18.putDouble( idBl, 0.000000 );
var idRGBC = charIDToTypeID( "RGBC" );
desc17.putObject( idClr, idRGBC, desc18 );
var idOpct = charIDToTypeID( "Opct" );
var idPrc = charIDToTypeID( "#Prc" );
desc17.putUnitDouble( idOpct, idPrc, 75.000000 );
var iduglg = charIDToTypeID( "uglg" );
desc17.putBoolean( iduglg, true );
var idlagl = charIDToTypeID( "lagl" );
var idAng = charIDToTypeID( "#Ang" );
desc17.putUnitDouble( idlagl, idAng, 120.000000 );
var idDstn = charIDToTypeID( "Dstn" );
var idPxl = charIDToTypeID( "#Pxl" );
desc17.putUnitDouble( idDstn, idPxl, 5.000000 );
var idCkmt = charIDToTypeID( "Ckmt" );
var idPxl = charIDToTypeID( "#Pxl" );
desc17.putUnitDouble( idCkmt, idPxl, 0.000000 );
var idblur = charIDToTypeID( "blur" );
var idPxl = charIDToTypeID( "#Pxl" );
desc17.putUnitDouble( idblur, idPxl, 5.000000 );
var idNose = charIDToTypeID( "Nose" );
var idPrc = charIDToTypeID( "#Prc" );
desc17.putUnitDouble( idNose, idPrc, 0.000000 );
var idAntA = charIDToTypeID( "AntA" );
desc17.putBoolean( idAntA, false );
var idTrnS = charIDToTypeID( "TrnS" );
var desc19 = new ActionDescriptor();
var idNm = charIDToTypeID( "Nm " );
desc19.putString( idNm, "Linear" );
var idShpC = charIDToTypeID( "ShpC" );
desc17.putObject( idTrnS, idShpC, desc19 );
var idlayerConceals = stringIDToTypeID( "layerConceals" );
desc17.putBoolean( idlayerConceals, true );
var idDrSh = charIDToTypeID( "DrSh" );
desc16.putObject( idDrSh, idDrSh, desc17 );
var idLefx = charIDToTypeID( "Lefx" );
desc15.putObject( idT, idLefx, desc16 );
executeAction( idsetd, desc15, DialogModes.NO );
рд▓реЗрдХрд┐рди рдЗрд╕ рдХреЛрдб рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рд╕реЗ, рд╣рдо рдкрд╛рддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
рдЖрдк рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдВрдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреЛрдиреЛрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рд╕рдВрд╡рд╛рдж рджрд┐рдЦрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЪреБрдкрдЪрд╛рдк рдЕрдкрдирд╛ рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИ (рдпрд╣ рдЕрдВрддрд┐рдо рдкреИрд░рд╛рдореАрдЯрд░ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ)ред ID-shniki рд╕реНрд╡рдпрдВ рдХрд╣реАрдВ рднреА рд╡рд░реНрдгрд┐рдд рдирд╣реАрдВ рд╣реИ, рд╣рдо рдХреЗрд╡рд▓ рдЙрдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВ (рд╕рд╛рде рд╣реА CS6 рдореЗрдВ рдЙрдирдХреЗ рд╕рд╛рде рдХреНрдпрд╛ рд╣реЛрдЧрд╛)ред
рдлрд┐рд░ рднреА, рд▓реЙрдЧрд┐рдВрдЧ рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛ рдХрд╛рдлреА рджрд┐рд▓рдЪрд╕реНрдк рд╣реИ, рдЕрдЧрд░ рдЖрдкрдХреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдЖрдк рдЬрд▓реНрджреА рд╕реЗ рдЕрдкрдиреЗ рд▓рд┐рдП рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЕрдкрд▓реЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдЕрдзрд┐рдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ
рдЙрд╕реА рд╕рдордп, рдореИрдВрдиреЗ рдпреЗ рдХрд╛рд░реНрдп рд▓рд┐рдЦреЗ:
- рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдЖрдХрд╛рд░ рдХреЗ рдЪрд┐рддреНрд░реЛрдВ рдХрд╛ рдЖрдХрд╛рд░ (рдЪреМрдбрд╝рд╛рдИ X рд╕реЗ рдЕрдзрд┐рдХ рдирд╣реАрдВ, рдКрдБрдЪрд╛рдИ Y рд╕реЗ рдЕрдзрд┐рдХ рдирд╣реАрдВ)
- рдЪрд┐рддреНрд░реЛрдВ рдореЗрдВ рдлреНрд░реЗрдо рдЬреЛрдбрд╝рдирд╛ - рдЗрд╕ рд╡рд┐рд╖рдп рдореЗрдВ рдЬреИрд╕рд╛ рд╣реИ
рд░реЛрдЪрдХ рддрдереНрдп
- рдПрдкреАрдЖрдИ рдХреЗ рдкрд╛рд╕ рд░реЙ рд╕рдкреЛрд░реНрдЯ рд╣реИред рдЬрдм рдЖрдк рдлрд╝реЛрдЯреЛрд╢реЙрдк рдореЗрдВ RAW рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░ рд▓реЗрддреЗ рд╣реИрдВ, рддреЛ рдЙрдирдореЗрдВ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рд╕рд╣реЗрдЬрдиреЗ рд╕реЗ рдЖрдк рдЙрдиреНрд╣реЗрдВ рдЬрд▓реНрджреА рд╕реЗ JPEG рдореЗрдВ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ
- рд╕рдореНрдорд┐рд╢реНрд░рдг рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЗ рд╡рд┐рдкрд░реАрдд, рдлрд╝рд┐рд▓реНрдЯрд░ рдПрдкреАрдЖрдИ рдореЗрдВ рдмрд╣реБрдд рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдЙрдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдХреЗ рд▓рд┐рдП рдПрдХ рдлрд╝рдВрдХреНрд╢рди рд╣реИ
- jsx рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рдХреЛрдб рдлрд╝реЛрдЯреЛрд╢реЙрдк рдореЗрдВ рдШрдЯрдирд╛рдУрдВ рдкрд░ рд▓рдЯрдХрд╛рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ: рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЬрдм рдПрдХ рдлрд╝рд╛рдЗрд▓ рдЦреЛрд▓рддреЗ рд╣реИрдВ рддреЛ рдЙрд╕рдореЗрдВ рдПрдХ рдирдИ рдкрд░рдд рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ, рдФрд░ рдЗрд╕реА рддрд░рд╣
- рдПрдкреАрдЖрдИ рдЗрд▓рд╕реНрдЯреНрд░реЗрдЯрд░ рдФрд░ рдмреНрд░рд┐рдЬ рджреЛрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд╣реИ
- рдПрдкреАрдЖрдИ рд╕реЗ рд╣рд┐рд╕реНрдЯреЛрдЧреНрд░рд╛рдо рдФрд░ рдЪреИрдирд▓реЛрдВ рддрдХ рдкрд╣реБрдВрдЪ рд╣реИ
рдирд┐рд╖реНрдХрд░реНрд╖
рдПрдкреАрдЖрдИ рд╕реНрд╡рд╛рджрд┐рд╖реНрдЯ, рд╕реНрд╡рд╛рджрд┐рд╖реНрдЯ рд╣реИред рд▓реЗрдХрд┐рди рд╕рдореНрдорд┐рд╢реНрд░рдг рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдХреА рдХрдореА рдмрд╣реБрдд рдирд┐рд░рд╛рд╢рд╛рдЬрдирдХ рд╣реИ; рдпрджрд┐ рдЖрдкрдХреЛ рдЙрдирдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ - рдЗрд╕ рддрдереНрдп рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд░рд╣реЗрдВ рдХрд┐ рдЖрдкрдХреЛ рдбрд░рд╛рд╡рдиреЗ рдХреЛрдб рдХреЗ рд╕рд╛рде рдЧрдбрд╝рдмрдбрд╝ рдХрд░рдирд╛ рд╣реИред рдпрджрд┐ рдЖрдк рд╕рднреА рдХреА рдЬрд░реВрд░рдд рд╣реИ (рдЬреЛ рдЬреНрдпрд╛рджрд╛рддрд░ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдмреИрдЪ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рд╕реЗ рдЖрд╡рд╢реНрдпрдХ рд╣реИ) рддрд╕реНрд╡реАрд░ рдХреЛ рдлреНрд░реЗрдо рдХрд░рдирд╛ рд╣реИ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ ImageMagick рддреЗрдЬ рдФрд░ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реЛрдЧрд╛ред
+ / -








рдЖрджрд░
рдПрдбреЛрдм рдлреЛрдЯреЛрд╢реЙрдк рд╕реНрдХреНрд░рд┐рдкреНрдЯрд┐рдВрдЧ - рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╕рдВрд╕рд╛рдзрди
рдлрд╝реЛрдЯреЛрд╢реЙрдкрд┐рдВрдЧ рд╕реНрдХреНрд░рд┐рдкреНрдЯрд┐рдВрдЧ - рдлрд╝реЛрдЯреЛрд╢реЙрдк рдореЗрдВ рд╕реНрдХреНрд░реИрдкрд┐рдВрдЧ рдкрд░ рдПрдХ рдЫреЛрдЯрд╛ рд▓реЗрдХрд┐рди рдЙрдкрдпреЛрдЧреА рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓
PS-Scripts - рдлреЛрдЯреЛрд╢реЙрдк рдХреЗ рд▓рд┐рдП рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рдордВрдЪ
рд╕реЛрдЪрдиреЗ рдХреЗ рд▓рд┐рдП
рдПрдХ рдЕрднреНрдпрд╛рд╕ рдХреЗ рд░реВрдк рдореЗрдВ, рд╣рдо рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рд░рдЦрддреЗ рд╣реИрдВ рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрд╛рдо рдореЗрдВ рдЖ рд╕рдХрддреА рд╣реИ: рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдлреЛрдЯреЛ рдкрд░ рд▓реЛрдЧреЛ рдХреЛ рдЙрд╕реА рд░рдВрдЧ рдпреЛрдЬрдирд╛ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╣реИ рдЬреИрд╕реЗ рдХрд┐ рдлреЛрдЯреЛ - рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдиреАрд▓реЗ рдпрд╛ рдкреАрд▓реЗ рд░рдВрдЧ рдХреЗ рд▓рд┐рдП рдкреАрд▓реЗ рд░рдВрдЧ рдХрд╛ рдлреЛрдЯреЛ: рдпрд╣ рд▓реЛрдЧреЛ рдХреЛ рдлреЛрдЯреЛ рдХреЗ рд╕рдордЧреНрд░ рд░рдВрдЧ рдФрд░ рдореВрдб рдХреЛ рдЦрд░рд╛рдм рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред ред рд▓реЛрдЧреЛ рдХреЛ рд░рдВрдЧ рдХреЗ рд╕рд╛рде рд╡рд┐рд▓рдп рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЕрд░реНрдерд╛рддред рдиреАрд▓реЗ рд░рдВрдЧ рдкрд░ рдиреАрд▓рд╛ рдордд рдмрдиреЛред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╣ рд╢рд╛рдВрдд рд╣реЛрдЧрд╛ рдпрджрд┐ рд▓реЛрдЧреЛ рдШрд╛рд╕ рдХреА рддрд░рд╣ рд╕рддрд╣ рдкрд░ рдирд╣реАрдВ рд╣реИ, рддреЛ рдЖрдк рдЗрд╕реЗ рджреВрд╕рд░реЗ рдХреЛрдиреЗ рдпрд╛ рдлрд┐рд░ рд╕реЗ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред