常用功能小集合
// 获取当前图层
var originalStem = app.activeDocument.activeLayer;
// 从用户获得输入
var stemsAmount = prompt("Processing \"" + originalStem.name + "\"\nHow many stems do you need? (From 2 to 100)", 12);
常用小案例:
将一个文件夹内的所有图片合并起来,生成一个pdf文档
var input = new Folder("C:/Users/CNX/Desktop/liuji/study/Script/PS Script/jpg1");
var data = input.getFiles("*.jpg");
/*
for(var index in data){
var path = data[index];
$.writeln(path);
}
*/
var output = new File ("C:/Users/CNX/Desktop/liuji/study/Script/PS Script/jpg1/out/test.pdf");
app.makePDFPresentation(data, output);
alert("PDF制作完成", "我是一个提醒框", false);
批量裁剪表情包
var input = new Folder("C:/Users/CNX/Desktop/liuji/study/Script/PS Script/jpg1");
var data = input.getFiles("*.jpg");
// $.writeln (typeof data);
for(var i = 0; i < data.length; i++)
{
open(data[i]);
//定义一个变量[document],用来表示Photoshop的当前文档。
var document = app.activeDocument;
//定义一个变量[bounds],用来表示文档需要裁切的区域,即裁切从坐标[0,0]至[140,104]的区域。
//注意Photoshop坐标原点在左上角。
var bounds = [0, 266, 300, 322];
//定义一个变量[angle],用来设置裁切的旋转角度为0。
var angle = 0;
//调用[document]对象的[crop]方法,来裁切当前文档。
document.crop(bounds, angle);
//定义一个变量[document],用来表示Photoshop当前的活动文档。
var document = app.activeDocument;
//定义一个变量[fileOut],用来指定文件保存的路径。
var fileOut = new File("C:/Users/CNX/Desktop/liuji/study/Script/PS Script/jpg1/out");
//定义一个变量[options],用来指定图片保存的格式为PNG。
var options = PNGSaveOptions;
//定义一个变量[asCopy],用来指定图片以副本的方式保存。
var asCopy = true;
//定义一个变量[extensionType],用来指定图片名称的后缀为小写的.png。
var extensionType = Extension.LOWERCASE;
//使用[document]对象的[saveAs]方法保存当前图片。
document.saveAs(fileOut, options, asCopy, extensionType);
}
改变指定图层的可见性
// Macintosh Finder or the Windows Explorer
#target photoshop
// 使Photoshop成为最前端的应用程序
app.bringToFront();
// 获取当前文档
var srcDoc = app.activeDocument;
changeLayerVisible("aa");
function findThisLayer(aLayerName)
{
try
{
//try to find the layer
return srcDoc.layers.getByName(aLayerName);
}
catch(ee)
{
;//do nothing
}
}
function changeLayerVisible(aLayerName)
{
try
{
findThisLayer(aLayerName).visible = !(findThisLayer(aLayerName).visible);
}
catch(ee)
{
alert("Layer :'" + aLayerName + "' Not found!");
}
}
将该图层放入一个图层组里,根据用户输入复制并旋转图层(需要设置混合模式)
// 保存当前图层到变量originalStem中
var originalStem = app.activeDocument.activeLayer;
// 要求用户输入需要将该图像旋转多少次,系统会自动根据旋转的个数来计算每次旋转的角度
var stemsAmount = prompt("Processing \"" + originalStem.name + "\"\nHow many stems do you need? (From 2 to 100)", 12);
// 检查用户输入的数字是否是有效数字,如果不正确,展示错误信息,要求用户重新输入
while(isNaN(stemsAmount) || stemsAmount <= 0 || stemsAmount > 100){
// 如果用户点击取消,那么退出循环
if(stemAmount == null) break;
// 展示错误信息
alert("Please enter number in range from 2 to 100");
// 要求再次输入
stemsAmount = prompt("Processing \"" + originalStem.name + "\"\nHow many stems do you need? (From 2 to 100)", 12);
};
// 运行这个复制的过程
if(stemsAmount != null){
// 计算旋转的角度
var angle = 360 / parseInt(stemsAmount);
// 创建一个图层组
var stemsGroup = app.activeDocument.layerSets.add();
stemsGroup.name = originalStem.name = " ("+stemsAmount + " stems)";
// 把最开始的那个图层也放入图层组里
originalStem.move(stemsGroup, ElementPlacement.INSIDE);
// 复制并且旋转图层组里的图层
for(var i = 1; i < stemsAmount; i++){
// 复制最初的图层,并且将其保存为一个变量 newStem
var newStem = originalStem.duplicate();
// 旋转新图层
newStem.rotate(angle * i, AnchorPosition.MIDDLECENTER);
// 给新图层添加索引
newStem.name = originalStem.name + " " + (i + 1);
// 把新图层放入图层组里
newStem.move(stemsGroup, ElementPlacement.PLACEATEND);
};
// 给最初的图层也添加一个索引1
originalStem.name += " 1)";
};
将一个文档里的每一个图层都单独保存为png文件
/*
ps编程参考
https://www.adobe.com/content/dam/acom/en/devnet/photoshop/pdfs/photoshop-cc-javascript-ref-2019.pdf
ps编程指导
https://www.adobe.com/content/dam/acom/en/devnet/photoshop/pdfs/photoshop-cc-scripting-guide-2019.pdf
我是gumou
*/
///////////////////////////////////Help Functions///////////////////////////////////////////////
function GetArtLayers (doc, allLayers){
for (var m = 0; m < doc.layers.length; m++){
var theLayer = doc.layers[m];
if (theLayer.typename === "ArtLayer"){
allLayers.push(theLayer);
}else{
GetArtLayers(theLayer, allLayers);
}
}
return allLayers;
}
function printLayersName(layerss){
var text = "";
for(var i = 0; i < layerss.length; i++){
var layer = layerss[i];
text = text + layer.name + "\n";
}
alert(text);
}
//////////////////////////////////////////////////////////////////////////////////
var doc = app.activeDocument;
var layers = [];
layers = GetArtLayers(doc,layers);
/////////////////////////////////////////
var prefix = "prefix_"; //在这里修改导出文件的前缀,单词文件名为 前缀+图层名
var folderpath = doc.path + "/"; //在这里修改导出的位置,默认为psd文件所在位置
/////////////////////////////////////////
var vlayers = [];
//保存所有可见的类,并隐藏
for(var i = 0; i < layers.length; i++){
var layer = layers[i];
if (layer.visible == true) {
vlayers.push(layer);
layer.visible = false;
}
}
for(var i = 0; i < layers.length; i++){
var layer = layers[i];
//如果图层不是 allLocked状态,导出
if (!layer.allLocked) {
layer.visible = true;
//保存
var filename = prefix + layer.name;
var file = new File(folderpath + filename+ ".png");
var saveOptions = new PNGSaveOptions();
doc.saveAs(file, saveOptions, true, Extension.NONE);
//隐藏
layer.visible = false;
}
}
//printLayersName(vlayers)
for(var i = 0; i < vlayers.length; i++){
var layer = vlayers[i];
layer.visible = true;
}
①:Hello World
// 记住当前单位设置,然后将单位设置该脚本所指定的值
var originalUnit = preferences.rulerUnits
preferences.rulerUnits = Units.INCHES
// 创建一个新的2x4英寸文档并将其分配给变量
var docRef = app.documents.add( 2, 4 )
// 创建一个包含文字的新艺术层
var artLayerRef = docRef.artLayers.add()
artLayerRef.kind = LayerKind.TEXT
// 设置文本层的内容
var textItemRef = artLayerRef.textItem
textItemRef.contents = "大家好,我是大吉哥"
// 发布参考
docRef = null
artLayerRef = null
textItemRef = null
// 恢复原始标尺单位设置
app.preferences.rulerUnits = originalUnit
②: 三种弹框以及在控制台打印
$.writeln("我是第一个hello world");
$.write ("hello world");
// 这是第一种弹框
// alert ("Hello 我是一个警告框", "警告框的标题", false);
// 这是第二个弹框
// 第二个参数如果是false,默认选择yes,如果是true,默认选择no
// var a = confirm ("这是一个确认框", false, "这里是确认框的标题");
// $.writeln("你选择了:" + a);
// 确认框更多的时候会这样用
/*
if(a == true){
$.writeln("用户选择了:" + a);
}else if(a == false) {
$.writeln("用户选择了:" + a);
}
*/
// 这是第三个弹框
var b = prompt ("这是一个提示输入框", "我是提示输入框中的默认值哦", "这是提示输入框的标题");
$.writeln(b);
③:在一个新的工作文档中新建一个画布
var newDoc = app.documents.add();
④: 打开一张图片
open(File("C:/Users/CNX/Desktop/liuji/study/PS/0358.gif_wh300.gif"));
⑤:打开打开文件对话框
open(File(openDialog()));
⑥:将该图层旋转一定角度之后,复制一份新图层
// 保存选中的图层到变量originalStem
var originalStem = app.activeDocument.activeLayer;
// 通过显示提示框要求用户输入并将输入的值保存到变量
var stemsAmount = prompt("Processing \"" + originalStem.name + "\"\nHow many stems do you need?", 12);
// 计算旋转的角度
var angle = 360 / stemsAmount;
//复制并且旋转图层
for(var i = 1; i < stemsAmount; i++){
// 复制原始图层并将其保存到变量中newStem中
var newStem = originalStem.duplicate();
// 旋转新图层
newStem.rotate(angle * i, AnchorPosition.BOTTOMCENTER);
};
⑦:通过构造器创建对象
function Person(name){
this.name = name;
this.play = function(param){
$.writeln(param);
}
}
var a = new Person("小明");
$.writeln(a.name);
a.play("打篮球");
9:新建一个200*200的文档,并在背景图层上方新建一个同等大小的透明图层
preferences.rulerUnits = Units.PIXELS;
var docRef = app.documents.add(200, 200);
var layer = docRef.artLayers.add();
layer.name = 'footer';
10:PS执行播放提示音效命令
app.beep();
11:关闭当前文档
app.activeDocument.close();
12: 当前文档的当前选区的羽化值设定为10
app.activeDocument.selection.feather(10);
13:当前文档的当前图层的透明度设置为50
app.activeDocument.activeLayer.alpha = 50;
14:在弹框中显示当前应用名称以及该应用的版本信息
var message = "Welcome to" + app.name + "\r\nVersion" + app.version;
alert(message);
初识PS脚本
遍历最近打开的文档,并用alert弹框显示
// 义一个变量[recntFiles],表示Photoshop最近打开的文件。
var recentFiels = app.recentFiles;
// 定义一个变量[message],用来在之后的代码中,存储所有曾经打开的文件的名称。
var message = "";
// 添加一个循环语句,用来遍历文件列表,用来把所有文件的名称添加到[message]变量。
for(var i=0; i<recentFiels.length; i++)
{
message += (i+1) + ":" + recentFiels[i].name + "\r\n";
};
// 调用[alert]命令,将[message]存储的信息显示出来。点击[文件]菜单,保存当前文件。
alert(message);
输出当前文档的信息
// 定义一个变量[docs],它是一个数组,用来存储Photoshop当前已打开的所有文档。
var docs = app.documents;
// 定义一个变量[message],它的默认值为空。这个变量将在后面的代码中起到保存所有文档尺寸信息的作用。
var message = "";
// 添加一个for循环语句,用来遍历[docs]数组里面的元素,也就是Photoshop当前已打开的所有文档。
for(var i=0; i<docs.length; i++)
{
// docs[i]表示第i个文档,这条语句的作用是将遍历到的文档的名称、宽度、高度等信息使用+号连接成一个字符串,并累加存入到[message]变量中。
message += docs[i].name+":"+docs[i].width+"*"+docs[i].height+"\r\n";
}
// 调用[alert]命令,打开警告框,显示[message]的最终结果。
alert(message);
遍历系统中的所有字体
// 新建一个变量[fonts],它是一个数组,用来存储系统中的所有字体。
var fonts = app.fonts;
// 新建一个变量[message],它的默认值为空。这个变量将在后面的代码中起到保存字体信息的作用。
var message = "";
// 创建一个for循环,用来遍历[fonts]数组里面的元素,也就是系统字体。
for(var i=0; i<fonts.length; i++)
{
// fonts[i]表示第i个字体,这条语句的作用是将序号和字体的名称,用+号连接成一个字符串,并累加存入到[message]变量中。
message += (i+1)+" - "+fonts[i].name+"\r\n";
}
// 使用[alert]命令,打开警告框,显示[message]的最终结果。
alert(message);
随机设置前景色和背景色
// [confirm]命令会弹出一个包含[是/否]的确认框,由用户决定是否执行某一个操作。
// 选择的结果[是/否]将保存在[answer]变量里。
var answer = confirm("您需要随机设置前景色和背景色吗?");
// 判断用户的选择,如果用户选择[是],则执行接下来的动作。
if(answer)
{
app.foregroundColor.rgb.red = Math.random() * 255;
app.foregroundColor.rgb.green = Math.random() * 255;
app.foregroundColor.rgb.blue = Math.random() * 255;
app.backgroundColor.rgb.red = Math.random() * 255;
app.backgroundColor.rgb.green = Math.random() * 255;
app.backgroundColor.rgb.blue = Math.random() * 255;
}
文档操作
创建一个空白文档
//定义一个变量[Width],表示新文档的宽度。
var width = 560;
//定义一个变量[height],表示新文档的高度。
var height = 560;
//定义一个变量[resolution],表示新文档的分辨率。
var resolution = 72;
//定义一个变量[docName],表示新文档的名称。
var docName = "New Document";
//定义一个变量[mode],表示新文档的颜色模式。
var mode = NewDocumentMode.RGB;
//定义一个变量[initialFill],表示新文档的默认背景填充颜色。
var initialFill = DocumentFill.TRANSPARENT;
//定义一个变量[pixelAspectRatio],用来设置新文档的像素比率。
var pixelAspectRatio = 1;
//使用[Documents.add]命令创建一个新文档,将设置好的参数放在[add]方法里面。
app.documents.add(width, height, resolution, docName, mode, initialFill, pixelAspectRatio);
创建一个新文档和一个文字图层
//定义一个变量[docRef],用来表示新建的文档。
//相对于上一节来说,[app.documents.add]命令只传入宽度和高度参数来创建一个空白文档。
var docRef = app.documents.add(500, 300);
//定义一个变量[artLayerRef],用来表示新建的图层。调用[artLayers]对象的[add]命令,在当前文档新建一个图层。
var artLayerRef = docRef.artLayers.add();
//将新建图层的属性设置为文字图层。图层类型有十几种,例如3D、视频等,详情可查阅Adobe官网上的Photoshop脚本手册。
artLayerRef.kind = LayerKind.TEXT;
//定义一个变量[textItemRef],表示一个新的文本对象。
var textItemRef = artLayerRef.textItem;
//设置这个文本对象的文本内容。
textItemRef.contents = "Hello, Photoshop Script!";
//设置这个文本对象的文本尺寸。
textItemRef.size = 40;
//使用[translate]命令移动文本图层,[0]表示横向移动的距离,[120]表示纵向的移动距离。
//Photoshop的原点是在文档的左上角,而不是在左下角。
artLayerRef.translate(0, 120);
打开一个硬盘里面已经存在的图片文档
//定义一个变量[sampleDoc],用来表示硬盘上的一个图片文档。
var sampleDoc = File("C:/Users/CNX/Desktop/liuji/study/Script/PS Script/jpg1/galaxy-z-flip-screenshot-reset-network-settings.jpg");
//定义一个变量[message],用来表示一个字符串。
var message = "您要打开示例文档吗?";
//定义一个变量[answer],用来表示在弹出的确认警告框里,用户是点击了[是]还是[否]。
var answer = confirm(message);
// 如果用户点击了[是],则使用[open]命令,在Photoshop中打开指定的图片。
if (answer)
open(sampleDoc);
打开一个目录下所有的文档
//定义一个变量[sampleFolder],用来表示硬盘某个路径上的文件夹。
var samplesFolder = Folder("C:/Users/CNX/Desktop/liuji/study/Script/PS Script/jpg1");
//定义一个变量[fileList],用来表示使用[getFiles]命令获得的文件夹下的所有文档。
var fileList = samplesFolder.getFiles();
//创建一个for循环,用来遍历[fileList]数组里面的所有文档。
for (var i=0; i<fileList.length; i++)
{
//先判断是否正常文档,然后使用[open]命令打开文档。
if (fileList[i] instanceof File)
open(fileList[i]);
}
另存当前文档
//定义一个变量[document],用来表示Photoshop当前的活动文档。
var document = app.activeDocument;
//定义一个变量[fileOut],用来指定文件保存的路径。
var fileOut = new File("C:/Users/CNX/Desktop/liuji/study/Script/PS Script/jpg1/out");
//定义一个变量[options],用来指定图片保存的格式为PNG。
var options = PNGSaveOptions;
//定义一个变量[asCopy],用来指定图片以副本的方式保存。
var asCopy = true;
//定义一个变量[extensionType],用来指定图片名称的后缀为小写的.png。
var extensionType = Extension.LOWERCASE;
//使用[document]对象的[saveAs]方法保存当前图片。
document.saveAs(fileOut, options, asCopy, extensionType);
查看图层边界信息
//定义一个变量[activeLayer],表示Photoshop当前文档的当前图层。
var activeLayer = app.activeDocument.activeLayer;
//定义一个变量[bounds],表示当前图层的边界信息。
var bounds = activeLayer.bounds;
//使用[alert]命令,弹出警告框,显示变量[bounds]的具体内容。
alert(bounds);
复制当前文档
//定义一个变量[document],用来表示Photoshop当前的活动文档。
var document = app.activeDocument;
//定义一个变量[name],用来设置复制的新文档的名称。
var name = "New Document";
//定义一个变量[mergeLayersOnly],用来表示是否只复制合并的图层。
var mergeLayersOnly = 1;
// 调用document的[duplicate]方法,复制当前文档。
document.duplicate(name, mergeLayersOnly);
将当前文档保存为一个新的gif文档
//定义一个变量[document],用来表示Photoshop当前的活动文档。
var document = app.activeDocument;
//定义一个变量[fileOut],用来表示导出的GIF图片路径。
var fileOut = new File("C:/Users/CNX/Desktop/liuji/study/Script/PS Script/jpg1/out/test1.gif");
//定义一个变量[exportOptionsSaveForWeb],用来表示导出文档为Web格式的设置属性。
var exportOptionsSaveForWeb = new ExportOptionsSaveForWeb();
//设置导出文档时,是否支持文档的透明度。
exportOptionsSaveForWeb.transparency = false;
//设置导出文档时,是否包含文档中内置的颜色档案(即色彩空间配置文件)。
exportOptionsSaveForWeb.includeProfile = true;
//设置导出文档时,有损压缩的程度。
exportOptionsSaveForWeb.lossy = 0;
//设置导出文档时,图片包含的色彩量(256种颜色)。
exportOptionsSaveForWeb.colors = 256;
//设置导出文档时,图片的减色算法为默认值ColorReductionType.SELECTIVE。共有9种压缩算法,详情请查看Photoshop脚本手册。
exportOptionsSaveForWeb.colorReduction = ColorReductionType.SELECTIVE;
//设置导出文档时,图片将被存储为.gif格式。
exportOptionsSaveForWeb.format = SaveDocumentType.COMPUSERVEGIF;
//设置导出文档时,图片的像素抖动值。
exportOptionsSaveForWeb.ditherAmount = 0;
//设置导出文档时,图片的像素抖动类型。抖动类型共有4种,详情请查看Photoshop脚本手册。
exportOptionsSaveForWeb.dither = Dither.NOISE;
//设置导出文档时,图片的调色板的类型。调色板类型共有12种,详情请查看Photoshop脚本手册。
exportOptionsSaveForWeb.palette = Palette.LOCALADAPTIVE;
//调用[document]的[exportDocument]方法,使用上面设置的各种参数,将当前文档导出并转换为GIF格式的文档。
document.exportDocument(fileOut, ExportType.SAVEFORWEB, exportOptionsSaveForWeb);
压缩并输出jpg图片
//定义一个变量[document],用来表示Photoshop当前的活动文档。
var document = app.activeDocument;
//定义一个变量[fileOut],用来表示导出后的GIF图片路径。
var fileOut = new File("C:/Users/CNX/Desktop/liuji/study/Script/PS Script/jpg1/out/aaa.jpg");
//定义一个变量[exportOptionsSaveForWeb],用来表示导出文档为Web格式的设置属性。
var exportOptionsSaveForWeb = new ExportOptionsSaveForWeb();
//设置导出文档时,图片将被存储为.jpeg格式。
exportOptionsSaveForWeb.format = SaveDocumentType.JPEG;
//设置导出文档时,图片的压缩质量。数字范围为1至100。
exportOptionsSaveForWeb.quality = 60;
//调用[document]的[exportDocument]方法,使用上面设置的各种参数,将当前文档导出并转换为JPEG格式的文档。
document.exportDocument(fileOut, ExportType.SAVEFORWEB, exportOptionsSaveForWeb);
压缩并输出PNG图片
//定义一个变量[document],用来表示Photoshop当前的活动文档。
var document = app.activeDocument;
//定义一个变量[fileOut],用来表示导出后的GIF图片路径。
var fileOut = new File("C:/Users/CNX/Desktop/liuji/study/Script/PS Script/jpg1/out/bbb.png");
//定义一个变量[exportOptionsSaveForWeb],用来表示导出文档为Web格式的设置属性。
var exportOptions = new ExportOptionsSaveForWeb();
//设置导出文档时,图片将被执行PNG-8压缩,如果值为false则执行PNG-24压缩,如果追求速度甚于质量请设置为true。
exportOptions.PNG8 = true;
// 调用[document]的[exportDocument]方法,使用上面设置的各种参数,将当前文档导出并转换为PNG格式的文档。
document.exportDocument(fileOut, ExportType.SAVEFORWEB, exportOptions);
关闭所有打开的文档
//使用[while]创建一个循环语句,循环执行大括号里的动作。
//直到while后面的条件为false,即当前Photoshop程序不存在打开的文档了。
while(app.documents.length > 0)
{
//调用[document]对象的[close]方法,关闭文档。[close]方法里的参数保证关闭文档时,不再保存文档。
app.activeDocument.close(SaveOptions.DONOTSAVECHANGES);
}
图像处理
调节图像的亮度和对比度
//定义一个变量[layer],用来表示Photoshop当前文档的当前图层。
var layer = app.activeDocument.activeLayer;
//定义一个变量[brightness],用来表示修改的亮度值。
var brightness = 30;
//定义一个变量[contrast],用来表示修改的对比度值。
var contrast = 30;
//调用[layer]对象的[adjustBrightnessContrast]方法,并传入前面设置好的参数,来调整图像的亮度和对比度。
layer.adjustBrightnessContrast(brightness,contrast);
使用自动对比度
//定义一个变量[layer],用来表示Photoshop当前文档的当前图层。
var layer = app.activeDocument.activeLayer;
//调用[layer]对象的[autoContrast]方法,来自动调整图像的对比度。
layer.autoContrast();
使用色阶调整图像
//定义一个变量[layer],用来表示Photoshop当前文档的当前图层。
var layer = app.activeDocument.activeLayer;
//定义一个变量[inputRangeStart],用来表示阴影输入色阶值。
var inputRangeStart = 32;
//定义一个变量[inputRangeEnd],用来表示高光输入色阶值。
var inputRangeEnd = 145;
//定义一个变量[inputRangeGamma],用来表示中间调输入色阶值。
var inputRangeGamma = 1.00;
//定义一个变量[outputRangeStart],用来表示阴影输出色阶值。
var outputRangeStart = 0;
//定义一个变量[outputRangeEnd],用来表示高光输出色阶值。
var outputRangeEnd = 255;
//调用[layer]对象的[adjustLevels]方法,并传入前面设置好的参数,来调整图像的色阶。
layer.adjustLevels(inputRangeStart, inputRangeEnd, inputRangeGamma, outputRangeStart,
outputRangeEnd);
使用自动色调
//定义一个变量[layer],用来表示Photoshop当前文档的当前图层。
var layer = app.activeDocument.activeLayer;
//调用[layer]对象的[autoLevels]方法,来自动调整图像的色阶。
layer.autoLevels();
使用曲线调整图像
//定义一个变量[layer],用来表示Photoshop当前文档的当前图层。
var layer = app.activeDocument.activeLayer;
//定义一个变量[curveShape],用来表示曲线上三个点的坐标。
//每个坐标的第一个值表示输入值(所选点的当前强度),第二个值表示输出值(所选点的新强度)。
var curveShape = [[36, 2], [87, 135], [255, 255]];
//调用[layer]对象的[ajustCurves]方法,来调用曲线功能处理当前图像。
layer.adjustCurves(curveShape);
色彩平衡的使用
//定义一个变量[layer],用来表示Photoshop当前文档的当前图层。
var layer = app.activeDocument.activeLayer;
//定义一个变量[shadows],用来表示阴影的色阶值。
var shadows = [0, 0, 0];
//定义一个变量[midtones],用来表示中间调的色阶值。
var midtones = [100, 0, 60];
//定义一个变量[shadows],用来表示高光的色阶值。
var highlights = [0, 0, 0];
//定义一个变量[preserveLuminosity],用来表示是否保持明度。
var preserveLuminosity = true;
//调用[layer]对象的[ajustColorBalance]方法,来调整图像的色彩均衡。
layer.adjustColorBalance(shadows, midtones, highlights, preserveLuminosity);
照片滤镜的使用
//定义一个变量[layer],用来表示Photoshop当前文档的当前图层。
var layer = app.activeDocument.activeLayer;
//定义一个变量[fillColor],用来表示[照片滤镜]的颜色。
var fillColor = app.foregroundColor;
//定义一个变量[density],用来表示[照片滤镜]的颜色深度。
var density = 100;
//定义一个变量[preserveLuminosity],用来表示是否保留明度。
var preserveLuminosity = true;
//调用[layer]对象的[photoFilter]方法,来调用系统的[照片滤镜]。
layer.photoFilter(fillColor, density, preserveLuminosity);
反相
//定义一个变量[layer],用来表示Photoshop当前文档的当前图层。
var layer = app.activeDocument.activeLayer;
//调用[layer]对象的[invert]方法,来反转图像的色彩。
layer.invert();
图像的色调分离
//定义一个变量[layer],用来表示Photoshop当前文档的当前图层。
var layer = app.activeDocument.activeLayer;
//定义一个变量[levels],用来设置[色调分离]的[色阶]值。
var levels = 2;
//调用[layer]对象的[posterize]方法,来调用系统的[色调分离]功能。点击[Ctrl + S]快捷键保存完成的脚本。
layer.posterize(levels);
调整图像的阈值
//定义一个变量[layer],用来表示Photoshop当前文档的当前图层。
var layer = app.activeDocument.activeLayer;
//定义一个变量[levels],用来设置[阈值]的[色阶]值。
var level = 109;
//调用[layer]对象的[threshould]方法,来调用系统的[阈值]功能。
layer.threshold(level);
使用去色功能
//定义一个变量[layer],用来表示Photoshop当前文档的当前图层。
var layer = app.activeDocument.activeLayer;
//调用[layer]对象的[desaturate]方法,来调用系统的[去色]功能。
layer.desaturate();
色调均化的使用
//定义一个变量[layer],用来表示Photoshop当前文档的当前图层。
var layer = app.activeDocument.activeLayer;
//调用[layer]对象的[equalize]方法,来调用系统的[色调均化]功能。点击[Ctrl + S]快捷键保存完成的脚本。
layer.equalize();
设置图像的大小
//定义一个变量[document],用来表示Photoshop的当前文档。
var document = app.activeDocument;
//定义一个变量[width],用来表示图像调整后的宽度。
var width = 600;
//定义一个变量[height],用来表示图像调整后的高度。
var height = 400;
//定义一个变量[resolution],用来表示图像调整后的分辨率。
var resolution = 72;
//定义一个变量[resampleMethod],用来表示图像调整后的重采样方法为自动模式。
var resampleMethod = ResampleMethod.AUTOMATIC;
//定义一个变量[amount],用来表示图像调整后的噪点值。
var amount = 50;
//调用[document]对象的[resizeImage]方法,来重新设置图像大小。
document.resizeImage(width, height, resolution, resampleMethod, amount);
设置画布的大小
//定义一个变量[document],用来表示Photoshop的当前文档。
var document = app.activeDocument;
//定义一个变量[width],用来表示画布调整后的宽度。
var width = 600;
//定义一个变量[height],用来表示画布调整后的高度。
var height = 400;
//定义一个变量[anchor],用来表示画布调整时的参考锚点。这里设置以画布的中心点为锚点。
var anchor = AnchorPosition.MIDDLECENTER;
//调用[document]对象的[reiszeCanvas]方法,来重新设置画布大小。
document.resizeCanvas(width, height, anchor);
翻转画布
//定义一个变量[document],用来表示Photoshop的当前文档。
var document = app.activeDocument;
//调用[document]对象的[flipCanvas]方法,来翻转画布。此处设置为水平翻转。
document.flipCanvas(Direction.HORIZONTAL);
//然后进行一次垂直方向的翻转。
document.flipCanvas(Direction.VERTICAL);
旋转画布
//定义一个变量[document],用来表示Photoshop的当前文档。
var document = app.activeDocument;
//定义一个变量[angle],用来表示画布旋转的角度。
var angle = 45;
//调用[document]对象的[rotateCanvas]方法,来旋转当前画布。
document.rotateCanvas(angle);
裁剪文档
//定义一个变量[document],用来表示Photoshop的当前文档。
var document = app.activeDocument;
//定义一个变量[bounds],用来表示文档需要裁切的区域,即裁切从坐标[0,0]至[140,104]的区域。
//注意Photoshop坐标原点在左上角。
var bounds = [0, 0, 140, 104];
//定义一个变量[angle],用来设置裁切的旋转角度为0。
var angle = 0;
//调用[document]对象的[crop]方法,来裁切当前文档。
document.crop(bounds, angle);
使用图层
新建图层
//调用[artLayers]对象的[add]方法,创建一个图层。
var layerRef = app.activeDocument.artLayers.add();
根据名称查找图层,然后设置该图层的填充
//调用[artLayers]对象的[getByName]方法,获得一个图层并将查找的结果用[layerRef]变量表示。
var layerRef = app.activeDocument.artLayers.getByName("Art");
//设置查找到的图层的透明度为20,透明度的取值范围为0至100。
layerRef.fillOpacity = 20;
删除当前图层
//定义一个变量[layer],用来表示Photoshop的当前图层。
var layer = app.activeDocument.activeLayer;
//调用[layer]对象的[remove]方法,将该图层从图层列表中删除。
layer.remove();
通过拷贝建立一个新图层
//定义一个变量[layer],用来表示Photoshop的当前图层。
var layer = app.activeDocument.activeLayer;
//调用[layer]对象的[copy]方法,将该图层拷贝到内存中。
layer.copy();
//调用[document]对象的[paste]方法,将内存中的拷贝,粘贴到当前文档。
app.activeDocument.paste();
剪切图层
//定义一个变量[layer],用来表示Photoshop的当前图层。
var layer = app.activeDocument.activeLayer;
//调用[layer]对象的[cut]方法,将该图层剪切到内存中。
layer.cut();
//调用[document]对象的[paste]方法,将内存中的拷贝,粘贴到当前文档。
app.activeDocument.paste();
复制一个图层到指定的图层后面
//定义一个变量[layer],用来表示Photoshop的当前图层。
var layer = app.activeDocument.activeLayer;
//定义一个变量[layers],用来表示Photoshop的当前文档的所有图层。
var layers = app.activeDocument.layers;
//调用[layer]对象的[duplicate]方法,复制当前图层,并插入到所有图层的后面。
layer.duplicate(layers[5], ElementPlacement.PLACEAFTER);
移动图层到指定索引图层的后面
注:索引应该是从上到下,从0开始
//定义一个变量[layer],用来表示Photoshop的当前图层。
var layer = app.activeDocument.activeLayer;
//定义一个变量[layers],用来表示Photoshop的当前文档的所有图层。
var layers = app.activeDocument.layers;
//调用[layer]对象的[move]方法,移动当前图层,并插入到所有图层的后面。
layer.move(layers[4], ElementPlacement.PLACEAFTER);
移动图层在平面上的位置
//定义一个变量[layer],用来表示Photoshop的当前图层。
var layer = app.activeDocument.activeLayer;
//调用[layer]对象的[translate]方法,让图层在横向和纵向各移动100像素。
layer.translate(100,100);
旋转当前图层一定的角度
//定义一个变量[layer],用来表示Photoshop的当前图层。
var layer = app.activeDocument.activeLayer;
//调用[layer]对象的[rotate]方法,将图层旋转45度,旋转锚点处于图层的中心位置。
layer.rotate(45, AnchorPosition.MIDDLECENTER);
缩放当前图层
//定义一个变量[layer],用来表示Photoshop的当前图层。
var layer = app.activeDocument.activeLayer;
//定义一个变量[horizotalRate],用来表示横向缩放比例为50%。
var horizontalRate = 50;
//定义一个变量[verticalRate],用来表示纵向缩放比例为50%。
var verticalRate = 50;
//定义一个变量[anchor],用来表示图层缩放的锚点为当前图层的中心位置。
var anchor = AnchorPosition.MIDDLECENTER;
//调用[layer]对象的[resize]方法,将图层沿横向和纵向均缩小50%。
layer.resize(horizontalRate, verticalRate, anchor);
将当前图层与所有图层进行链接
//定义一个变量[layer],用来表示Photoshop的当前图层。
var layer = app.activeDocument.activeLayer;
//定义一个变量[count],用来表示当前文档所有图层的数量。
var count = app.activeDocument.layers.length;
//添加一个循环语句,用来遍历所有图层。
for (var x = 0; x < count; x++)
{
//调用[layer]对象的[link]方法,将当前图层与图层列表中所有图层进行链接。
layer.link(app.activeDocument.layers[x]);
}
栅格化文字图层
//定义一个变量[layer],用来表示Photoshop的当前图层。
var layer = app.activeDocument.activeLayer;
//调用[layer]对象的[rasterize]方法,将当前图层进行文本类型的栅格化。
layer.rasterize(RasterizeType.TEXTCONTENTS);
合并所有可见图层
//定义一个变量[layer],用来表示Photoshop的当前文档。
var document = app.activeDocument;
//调用[document]对象的[mergeVisibleLayers]方法,合并当前文档的所有可见图层。
document.mergeVisibleLayers();
合并链接图层
//定义一个变量[layers],用来表示Photoshop当前文档的所有图层。
var layers = app.activeDocument.artLayers;
//添加一个循环语句,用来遍历所有图层。
for(var i=0; i<layers.length; i++)
{
//检测遍历到的图层如果不是背景图层,则继续后面的动作。
if(!layers[i].isBackgroundLayer)
{
//定义一个变量[linkedLayers],获取当前遍历到的图层的所有链接图层。
var linkedLayers = layers[i].linkedLayers;
//检测如果遍历到的图层拥有链接图层,则继续后面的动作。
if(linkedLayers.length > 0)
{
//调用[layer]对象的[merge]方法,合并链接图层。
layers[i].merge(linkedLayers[i]);
}
}
}
合并所有图层
//定义一个变量[document],用来表示Photoshop的当前文档。
var document = app.activeDocument;
//调用[document]对象的[flatten]方法,合并文档的所有图层。
document.flatten();
锁定图层组里的所有图层
//定义一个变量[layerSetRef],用来表示根据名称查找到的图层组。
var layerSetRef = app.activeDocument.layerSets.getByName("aaa");
//调用[layerSetRef]对象的[allLocked]方法,锁定图层组下所有图层。
layerSetRef.allLocked = true;
查看当前图层的锁定状态
//定义一个变量[layer],用来表示Photoshop的当前图层。
var layer = app.activeDocument.activeLayer;
//调用[alert]变量,弹出警告框,显示当前图层的像素是否被锁定。
alert("Is pixels locked:" + layer.pixelsLocked);
//调用[alert]变量,弹出警告框,显示当前图层的位置是否被锁定。
alert("Is position locked:" + layer.positionLocked);
//调用[alert]变量,弹出警告框,显示当前图层的透明度是否被锁定。
alert("Is transparentPixels locked:" + layer.transparentPixelsLocked);
使用选区
创建选区
//定义一个变量[region],表示一定范围的区域。它的值是四个点的坐标。
var region = [[20,20],[120,20],[120,120],[20,120]];
//定义一个变量[type],表示构建选区的方式。
//当前使用的是默认选项,即如果当前文档已经存在选区,则取消已存在的选区后,再构建新的选区。
var type = SelectionType.REPLACE;
//定义一个变量[feather],表示构建选区时的羽化值。
var feather = 0;
//定义一个变量[antiAlias],表示构建选区时是否抗锯齿。
var antiAlias = true;
//通过调用[selection]对象的[select]方法,并传入之前设置好的各项参数,在当前文档构建一个选区。
app.activeDocument.selection.select(region, type, feather, antiAlias);
//通过调用[selection]对象的[fill]方法,给当前选区填充系统的前景色。
app.activeDocument.selection.fill(app.foregroundColor);
同时创建多个选区
//定义一个变量[region],表示一定范围的区域。它的值是四个点的坐标。
var region1 = [[0,0],[100,0],[100,100],[0,100]];
//定义一个变量[region2],表示第二个选区的范围。
var region2 = [[150,150],[200,100],[100,100]];
//定义一个变量[type1],表示第一个选区的类型。
var type1 = SelectionType.REPLACE;
//定义一个变量[type2],表示第二个选区的类型。此类型设置为扩展(即与前一个选区相加)。
var type2 = SelectionType.EXTEND;
//定义一个变量[feather],表示构建选区时的羽化值。
var feather = 0;
//定义一个变量[antiAlias],表示构建选区时是否抗锯齿。
var antiAlias = true;
//通过调用[selection]对象的[select]方法,创建第一个选区。
app.activeDocument.selection.select(region1, type1, feather, antiAlias);
//使用同样的方式,创建第二个选区。
app.activeDocument.selection.select(region2, type2, feather, antiAlias);
//通过调用[selection]对象的[fill]方法,给当前选区填充系统的前景色。
app.activeDocument.selection.fill(app.foregroundColor);
如何取消选区
//定义一个变量[region],表示一定范围的区域。它的值是四个点的坐标。
var region1 = [[20,20],[120,20],[120,120],[20,120]];
//定义一个变量[type],表示创建选区的方式。
//当前使用的是默认选项,即如果当前文档已经存在选区,则取消已存在的选区后,再创建新的选区。
var type = SelectionType.REPLACE;
//定义一个变量[feather],表示创建选区时的羽化值。
var feather = 0;
//定义一个变量[antiAlias],表示创建选区时是否抗锯齿。
var antiAlias = true;
//通过调用[selection]对象的[select]方法,并传入之前设置好的各项参数,来在当前文档创建一个选区。
app.activeDocument.selection.select(region1, type, feather, antiAlias);
//通过调用[selection]对象的[fill]方法,给当前选区填充系统的前景色。
app.activeDocument.selection.fill(app.foregroundColor);
//通过调用[selection]对象的[deselect]方法,取消当前文档的选区。
app.activeDocument.selection.deselect();
清除一个选区的内容
//定义一个变量[region],表示一定范围的区域。它的值是四个点的坐标。
var region1 = [[20,20],[120,20],[120,120],[20,120]];
//定义一个变量[type],表示创建选区的方式。
//当前使用的是默认选项,即如果当前文档已经存在选区,则取消已存在的选区后,再创建新的选区。
var type = SelectionType.REPLACE;
//定义一个变量[feather],表示创建选区时的羽化值。
var feather = 0;
//定义一个变量[antiAlias],表示创建选区时是否抗锯齿。
var antiAlias = true;
//通过调用[selection]对象的[select]方法,并传入之前设置好的各项参数,来在当前文档创建一个选区。
app.activeDocument.selection.select(region1, type, feather, antiAlias);
//通过调用[selection]对象的[clear]方法,清除当前选区里的内容。
app.activeDocument.selection.clear();
反转当前选区
//定义一个变量[region],表示一定范围的区域。它的值是四个点的坐标。
var region = [[50,50],[150,50],[150,150],[50,150]];
//定义一个变量[type],表示选择的类型。当前使用的是默认选项即替换之前的选区(如果有的话)。
var type = SelectionType.REPLACE;
//定义一个变量[feather],表示构建选区时的羽化值。
var feather = 0;
//定义一个变量[antiAlias],表示构建选区时是否抗锯齿。
var antiAlias = true;
//通过调用[selection]对象的[select]方法,并传入之前设置好的各项参数,来在当前文档构建一个选区。
app.activeDocument.selection.select(region, type, feather, antiAlias);
//通过调用[selection]对象的[invert]方法,反选当前选区之外的内容。
app.activeDocument.selection.invert();
//通过调用[selection]对象的[fill]方法,给当前选区填充系统的前景色。
app.activeDocument.selection.fill(app.foregroundColor);
羽化当前选区
//定义一个变量[region],表示一定范围的区域。它的值是四个点的坐标。
var region = [[50,50],[150,50],[150,150],[50,150]];
//定义一个变量[type],表示选择的类型。当前使用的是默认选项即替换之前的选区(如果有的话)。
var type = SelectionType.REPLACE;
//定义一个变量[feather],表示构建选区时的羽化值。
var feather = 0;
//定义一个变量[antiAlias],表示构建选区时是否抗锯齿。
var antiAlias = true;
//通过调用[selection]对象的[select]方法,并传入之前设置好的各项参数,来在当前文档构建一个选区。
app.activeDocument.selection.select(region, type, feather, antiAlias);
//通过调用[selection]对象的[feather]方法,给当前选区设置值为20像素的羽化效果。
app.activeDocument.selection.feather(20);
//通过调用[selection]对象的[fill]方法,给当前选区填充系统的前景色。
app.activeDocument.selection.fill(app.foregroundColor);
平滑当前选区
//定义一个变量[region],表示一定范围的区域。它的值是四个点的坐标。
var region = [[50,50],[150,50],[150,150],[50,150]];
//定义一个变量[type],表示选择的类型。当前使用的是默认选项即替换之前的选区(如果有的话)。
var type = SelectionType.REPLACE;
//定义一个变量[feather],表示构建选区时的羽化值。
var feather = 0;
//定义一个变量[antiAlias],表示构建选区时是否抗锯齿。
var antiAlias = true;
//通过调用[selection]对象的[select]方法,并传入之前设置好的各项参数,来在当前文档构建一个选区。
app.activeDocument.selection.select(region, type, feather, antiAlias);
//通过调用[selection]对象的[smooth]方法,给当前选区设置值为10像素的平滑效果。
app.activeDocument.selection.smooth(10);
//通过调用[selection]对象的[fill]方法,给当前选区填充系统的前景色。
app.activeDocument.selection.fill(app.foregroundColor);
扩大当前选区
//定义一个变量[region],表示一定范围的区域。它的值是四个点的坐标。
var region = [[50,50],[150,50],[150,150],[50,150]];
//定义一个变量[type],表示选择的类型。当前使用的是默认选项即替换之前的选区(如果有的话)。
var type = SelectionType.REPLACE;
//定义一个变量[feather],表示构建选区时的羽化值。
var feather = 0;
//定义一个变量[antiAlias],表示构建选区时是否抗锯齿。
var antiAlias = true;
//通过调用[selection]对象的[select]方法,并传入之前设置好的各项参数,来在当前文档构建一个选区。
app.activeDocument.selection.select(region, type, feather, antiAlias);
//定义一个变量[number],作为选区扩展的距离。
var number = 20;
//通过调用[selection]对象的[expand]方法,将当前选区向外扩展20像素。
app.activeDocument.selection.expand(number);
//通过调用[selection]对象的[fill]方法,给当前选区填充系统的前景色。
app.activeDocument.selection.fill(app.foregroundColor);
改变当前选区内容的尺寸
//定义一个变量[region],表示一定范围的区域。它的值是四个点的坐标。
var region = [[50,50],[150,50],[150,150],[50,150]];
//定义一个变量[type],表示选择的类型。当前使用的是默认选项即替换之前的选区(如果有的话)。
var type = SelectionType.REPLACE;
//定义一个变量[feather],表示构建选区时的羽化值。
var feather = 0;
//定义一个变量[antiAlias],表示构建选区时是否抗锯齿。
var antiAlias = true;
//通过调用[selection]对象的[select]方法,并传入之前设置好的各项参数,来在当前文档构建一个选区。
app.activeDocument.selection.select(region, type, feather, antiAlias);
//定义一个变量[horizontal],表示选区缩放的横向百分比。
var horizontal = 50;
//定义一个变量[vertical],表示选区缩放的纵向百分比。
var vertical = 50;
//通过调用[selection]对象的[resize]方法,缩放当前选区。
app.activeDocument.selection.resize(horizontal, vertical, AnchorPosition.MIDDLECENTER);
改变当前选区的尺寸
//定义一个变量[region],表示一定范围的区域。它的值是四个点的坐标。
var region = [[50,50],[150,50],[150,150],[50,150]];
//定义一个变量[type],表示选择的类型。当前使用的是默认选项即替换之前的选区(如果有的话)。
var type = SelectionType.REPLACE;
//定义一个变量[feather],表示构建选区时的羽化值。
var feather = 0;
//定义一个变量[antiAlias],表示构建选区时是否抗锯齿。
var antiAlias = true;
//通过调用[selection]对象的[select]方法,并传入之前设置好的各项参数,来在当前文档构建一个选区。
app.activeDocument.selection.select(region, type, feather, antiAlias);
//定义一个变量[horizontal],表示选区缩放的横向距离。
var horizontal = 50;
//定义一个变量[vertical],表示选区缩放的纵向距离。
var vertical = 50;
//通过调用[selection]对象的[resizeBoundary]方法,设置边框选区效果。
app.activeDocument.selection.resizeBoundary(horizontal, vertical, AnchorPosition.MIDDLECENTER);
//通过调用[selection]对象的[fill]方法,给当前选区填充系统的前景色。
app.activeDocument.selection.fill(app.foregroundColor);
使用Grow命令扩展选区
//定义一个变量[region],表示一定范围的区域。它的值是四个点的坐标。
var region = [[50,50],[150,50],[150,150],[50,150]];
//定义一个变量[type],表示选择的类型。当前使用的是默认选项即替换之前的选区(如果有的话)。
var type = SelectionType.REPLACE;
//定义一个变量[feather],表示构建选区时的羽化值。
var feather = 0;
//定义一个变量[antiAlias],表示构建选区时是否抗锯齿。
var antiAlias = true;
//通过调用[selection]对象的[select]方法,并传入之前设置好的各项参数,来在当前文档构建一个选区。
app.activeDocument.selection.select(region, type, feather, antiAlias);
//定义一个变量[tolerance],表示选区的扩展程度值。
var tolerance = 30;
//通过调用[selection]对象的[grow]方法,选区将向四周扩展。
app.activeDocument.selection.grow(tolerance, antiAlias);
//通过调用[selection]对象的[fill]方法,给当前选区填充系统的前景色。
app.activeDocument.selection.fill(app.foregroundColor);
选取相似的颜色的区域
//定义一个变量[region],表示一定范围的区域。它的值是四个点的坐标。
var region = [[50,50],[150,50],[150,150],[50,150]];
//定义一个变量[type],表示选择的类型。当前使用的是默认选项即替换之前的选区(如果有的话)。
var type = SelectionType.REPLACE;
//定义一个变量[feather],表示构建选区时的羽化值。
var feather = 0;
//定义一个变量[antiAlias],表示构建选区时是否抗锯齿。
var antiAlias = true;
//通过调用[selection]对象的[select]方法,并传入之前设置好的各项参数,来在当前文档构建一个选区。
app.activeDocument.selection.select(region, type, feather, antiAlias);
//定义一个变量[tolerance],表示选区的扩展程度值。
var tolerance = 32;
//通过调用[selection]对象的[similar]方法,选区将向四周按相似颜色的程度进行扩展。
app.activeDocument.selection.similar(tolerance, antiAlias);
//通过调用[selection]对象的[fill]方法,给当前选区填充系统的前景色。
app.activeDocument.selection.fill(app.foregroundColor);
移动当前选区的内容
//定义一个变量[region],表示一定范围的区域。它的值是四个点的坐标。
var region = [[50,50],[150,50],[150,150],[50,150]];
//定义一个变量[type],表示选择的类型。当前使用的是默认选项即替换之前的选区(如果有的话)。
var type = SelectionType.REPLACE;
//定义一个变量[feather],表示构建选区时的羽化值。
var feather = 0;
//定义一个变量[antiAlias],表示构建选区时是否抗锯齿。
var antiAlias = true;
//通过调用[selection]对象的[select]方法,并传入之前设置好的各项参数,来在当前文档构建一个选区。
app.activeDocument.selection.select(region, type, feather, antiAlias);
//定义一个变量[deltaX],表示横向的移动值。
var deltaX = 60;
//定义一个变量[deltaY],表示纵向的移动值。
var deltaY = 60;
//通过调用[selection]对象的[translate]方法,在横向和纵向各移动选区内容60像素。
app.activeDocument.selection.translate(deltaX, deltaY);
//通过调用[selection]对象的[fill]方法,给当前选区填充系统的前景色。
app.activeDocument.selection.fill(app.foregroundColor);
移动当前选区
//定义一个变量[region],表示一定范围的区域。它的值是四个点的坐标。
var region = [[50,50],[150,50],[150,150],[50,150]];
//定义一个变量[type],表示选择的类型。当前使用的是默认选项即替换之前的选区(如果有的话)。
var type = SelectionType.REPLACE;
//定义一个变量[feather],表示构建选区时的羽化值。
var feather = 0;
//定义一个变量[antiAlias],表示构建选区时是否抗锯齿。
var antiAlias = true;
//通过调用[selection]对象的[select]方法,并传入之前设置好的各项参数,来在当前文档构建一个选区。
app.activeDocument.selection.select(region, type, feather, antiAlias);
//定义一个变量[deltaX],表示横向的移动值。
var deltaX = 60;
//定义一个变量[deltaY],表示纵向的移动值。
var deltaY = 60;
//通过调用[selection]对象的[translateBoundary]方法,在横向和纵向各移动选区60像素。
app.activeDocument.selection.translateBoundary(deltaX, deltaY);
//通过调用[selection]对象的[fill]方法,给当前选区填充系统的前景色。
app.activeDocument.selection.fill(app.foregroundColor);
旋转当前选区的内容
//定义一个变量[region],表示一定范围的区域。它的值是四个点的坐标。
var region = [[50,50],[150,50],[150,150],[50,150]];
//定义一个变量[type],表示选择的类型。当前使用的是默认选项即替换之前的选区(如果有的话)。
var type = SelectionType.REPLACE;
//定义一个变量[feather],表示构建选区时的羽化值。
var feather = 0;
//定义一个变量[antiAlias],表示构建选区时是否抗锯齿。
var antiAlias = true;
//通过调用[selection]对象的[select]方法,并传入之前设置好的各项参数,来在当前文档构建一个选区。
app.activeDocument.selection.select(region, type, feather, antiAlias);
//定义一个变量[angle],表示选区的旋转角度。
var angle = 45;
//定义一个变量[anchor],表示选区的旋转锚点为选区的中心位置。
var anchor = AnchorPosition.MIDDLECENTER;
//通过调用[selection]对象的[rotate]方法,旋转当前选区的内容。
app.activeDocument.selection.rotate(angle, anchor);
旋转当前选区
//定义一个变量[region],表示一定范围的区域。它的值是四个点的坐标。
var region = [[50,50],[150,50],[150,150],[50,150]];
//定义一个变量[type],表示选择的类型。当前使用的是默认选项即替换之前的选区(如果有的话)。
var type = SelectionType.REPLACE;
//定义一个变量[feather],表示构建选区时的羽化值。
var feather = 0;
//定义一个变量[antiAlias],表示构建选区时是否抗锯齿。
var antiAlias = true;
//通过调用[selection]对象的[select]方法,并传入之前设置好的各项参数,来在当前文档构建一个选区。
app.activeDocument.selection.select(region, type, feather, antiAlias);
//定义一个变量[angle],表示选区的旋转角度。
var angle = 45;
//定义一个变量[anchor],表示选区的旋转锚点为选区的中心位置。
var anchor = AnchorPosition.MIDDLECENTER;
//通过调用[selection]对象的[rotate]方法,旋转当前选区的内容。
app.activeDocument.selection.rotateBoundary(angle, anchor);
//通过调用[selection]对象的[fill]方法,给当前选区填充系统的前景色。
app.activeDocument.selection.fill(app.foregroundColor);
设置选区的边框
//定义一个变量[region],表示一定范围的区域。它的值是四个点的坐标。
var region = [[50,50],[150,50],[150,150],[50,150]];
//定义一个变量[type],表示选择的类型。当前使用的是默认选项即替换之前的选区(如果有的话)。
var type = SelectionType.REPLACE;
//定义一个变量[feather],表示构建选区时的羽化值。
var feather = 0;
//定义一个变量[antiAlias],表示构建选区时是否抗锯齿。
var antiAlias = true;
//通过调用[selection]对象的[select]方法,并传入之前设置好的各项参数,来在当前文档构建一个选区。
app.activeDocument.selection.select(region, type, feather, antiAlias);
//定义一个变量[width],表示边界的宽度。
var width = 10;
//通过调用[selection]对象的[selectBorder]方法,并传入之前设置好的各项参数,来在当前文档构建一个边界选区。
app.activeDocument.selection.selectBorder(width);
//通过调用[selection]对象的[fill]方法,给当前选区填充系统的前景色。
app.activeDocument.selection.fill(app.foregroundColor);
给选区添加描边效果
//定义一个变量[region],表示一定范围的区域。它的值是四个点的坐标。
var region = [[50,50],[150,50],[150,150],[50,150]];
//定义一个变量[type],表示选择的类型。当前使用的是默认选项即替换之前的选区(如果有的话)。
var type = SelectionType.REPLACE;
//定义一个变量[feather],表示构建选区时的羽化值。
var feather = 0;
//定义一个变量[antiAlias],表示构建选区时是否抗锯齿。
var antiAlias = true;
//通过调用[selection]对象的[select]方法,并传入之前设置好的各项参数,来在当前文档构建一个选区。
app.activeDocument.selection.select(region, type, feather, antiAlias);
//定义一个变量[strokeColor],表示描边的颜色。
var strokeColor = app.foregroundColor;
//定义一个变量[width],表示描边的宽度。
var width = 5;
//定义一个变量[location],表示描边的位置,即在选区外部进行描边。
var location = StrokeLocation.OUTSIDE;
//定义一个变量[mode],表示描边的颜色混合模式,这里采用正常的颜色混合模式。
var mode = ColorBlendMode.NORMAL;
//定义一个变量[opacity],表示描边的透明度。
var opacity = 100;
//定义一个变量[preserveTransparency],表示描边是否保留透明度。
var preserveTransparency = true;
//通过调用[selection]对象的[stroke]方法,并传入之前设置好的各项参数,来进行描边。
app.activeDocument.selection.stroke(strokeColor, width, location, mode, opacity, preserveTransparency);
//通过调用[selection]对象的[fill]方法,给当前选区填充系统的背景色。
app.activeDocument.selection.fill(app.foregroundColor);
通道基础
通过通道名称查找通道
//通过调用[channels]对象的[getByName]方法,获得当前图像的红色通道。
var channelRef = app.activeDocument.channels.getByName("红");
//通过调用[alert]命令,弹出警告框,显示该图像的直方图信息。
alert(channelRef.histogram);
改变通道的颜色
//通过调用[channels]对象的[getByName]方法,获得一个自定义的通道。请注意,您是无法更改图像默认通道属性的。
var channelRef = app.activeDocument.channels.getByName("Alpha 2");
//通过调用[alert]命令,弹出警告框,显示该通道的颜色信息。
alert(channelRef.color.rgb.red+"/"+channelRef.color.rgb.green+"/"+channelRef.color.rgb.blue);
//将该通道的RGB颜色的blue值修改为255。
channelRef.color.rgb.blue = 255;
//通过调用[alert]命令,弹出警告框,显示该图像的直方图信息。
alert(channelRef.color.rgb.red+"/"+channelRef.color.rgb.green+"/"+channelRef.color.rgb.blue);
查看通道的属性
//通过调用[channels]对象的[getByName]方法,获得当前图像的红色通道。
var channelRef1 = app.activeDocument.channels.getByName("红");
//通过调用[channels]对象的[getByName]方法,获得当前图像的[Alpha 1]通道。
var channelRef2 = app.activeDocument.channels.getByName("Alpha 1");
//通过调用[alert]命令,弹出警告框,显示红色通道的信息。
alert(channelRef1.kind);
//通过调用[alert]命令,弹出警告框显示[Alpha 1]通道的信息。
alert(channelRef2.kind);
遍历文档所有的通道
//通过[document]对象的[channels]属性,获得当前图像的所有通道。
var channels = app.activeDocument.channels;
//定义一个变量[count],表示通道的数量。
var count = channels.length;
//添加一个循环语句,用来遍历所有的通道。
for(var i=0 ; i<count; i++)
{
//通道[alert]语句,查看通道的名称。
alert(channels[i].name);
}
删除某一个通道
//通过[document]对象的[channels]属性,获得当前图像的所有通道。
var channels = app.activeDocument.channels;
//通过调用[channels]对象的[getByName]方法,获得当前图像的红色通道。
var channel = channels.getByName("红");
//通过调用[channel]对象的[remove]方法,删除该通道。
channel.remove();
将通道信息写入文本文件(暂未试验成功)
//定义一个变量[fileOut],表示硬盘上某个路径的文件。通道的文本信息将写入到这个文件。
var fileOut = new File("C:/Users/CNX/Desktop/liuji/study/Script/PS Script/jpg1/out/ChannelsInformation.log");
//设置文件的操作模式为写入模式。
fileOut.open("w", "TEXT", "????");
//通过[document]对象的[channels]属性,获得当前图像的所有通道。
var channels = app.activeDocument.channels;
//定义一个变量[count],表示通道的数量。
var count = channels.length;
//构建一个循环语句,用来遍历所有的通道。
for(var i=0; i<count; i++)
{
//将通道的名称和通道的直方图拼接在一起,并写入到文本文件里。
fileOut.write(channels[i].name + ":" + channels[i].histogram + "/r/n/r/n");
}
//文件写入成功后,关闭文件的输入流。
fileOut.close();
神奇滤镜
模糊滤镜的使用
//定义一个变量[layer],用来表示Photoshop的当前图层。
var layer = app.activeDocument.activeLayer;
//创建一个持续三次的循环,这样可以使[模糊滤镜]的效果更明显些。
for(var i=0; i<3; i++)
{
//调用[layer]对象的[applyBlur]方法,给图层添加模糊效果。
layer.applyBlur();
}
高斯模糊滤镜的使用
//定义一个变量[layer],用来表示Photoshop的当前图层。
var layer = app.activeDocument.activeLayer;
//定义一个变量[radius],用来表示[高斯模糊]的程度。
var radius = 2.5;
//调用[layer]对象的[applyGaussianBlur]方法,给图层添加高斯模糊效果。
layer.applyGaussianBlur(radius);
运动模糊滤镜的使用
//定义一个变量[layer],用来表示Photoshop的当前图层。
var layer = app.activeDocument.activeLayer;
//定义一个变量[angle],用来表示[运动模糊]的角度。
var angle = 10;
//定义一个变量[radius],用来表示[运动模糊]的半径。
var radius = 55;
//调用[layer]对象的[applyMotionBlur]方法,给图层添加运动模糊效果。
layer.applyMotionBlur(angle, radius);
锐化滤镜的使用
//定义一个变量[layer],用来表示Photoshop的当前图层。
var layer = app.activeDocument.activeLayer;
//调用[layer]对象的[applySharpen]方法,给图层添加锐化效果。
layer.applySharpen();
//再次调用[layer]对象的[applySharpen]方法,使锐化效果更明显些。
layer.applySharpen();
给图层添加杂色
//定义一个变量[layer],用来表示Photoshop的当前图层。
var layer = app.activeDocument.activeLayer;
//定义一个变量[amount],用来表示杂色的数量。
var amount = 10;
//定义一个变量[distribution],用来表示杂色的分布方式为高斯模式。
var distribution = NoiseDistribution.GAUSSIAN;
//定义一个变量[monochromatic],用来表示杂色为单色模式。
var monochromatic = true;
//调用[layer]对象的[applyAddNoise]方法,给图层添加杂色效果。
layer.applyAddNoise(amount, distribution, monochromatic);
蒙尘与划痕滤镜的使用
//定义一个变量[layer],用来表示Photoshop的当前图层。
var layer = app.activeDocument.activeLayer;
//定义一个变量[radius],用来表示半径的大小。
var radius = 7;
//定义一个变量[hreshold],用来表示阈值的大小。
var threshold = 0;
//调用[layer]对象的[applyDustAndScratches]方法,给图层添加蒙尘与划痕效果。
layer.applyDustAndScratches(radius, threshold);
云彩滤镜的使用
//[云彩滤镜]是根据前景色和背景色来模拟生成的。在此将前景色设为蓝色,背景色设为白色。
//设置系统的前景色RGB值的red值。
app.foregroundColor.rgb.red = 0;
//设置系统的前景色RGB值的green值。
app.foregroundColor.rgb.green = 125;
//设置系统的前景色RGB值的blue值。
app.foregroundColor.rgb.blue = 255;
//设置系统的背景色RGB值的red值。
app.backgroundColor.rgb.red = 255;
//设置系统的背景色RGB值的green值。
app.backgroundColor.rgb.green = 255;
//设置系统的背景色RGB值的blue值。
app.backgroundColor.rgb.blue = 255;
//定义一个变量[layer],用来表示Photoshop的当前图层。
var layer = app.activeDocument.activeLayer;
//调用[layer]对象的[applyClouds]方法,给图层添加云彩滤镜效果。
layer.applyClouds();
镜头光晕滤镜的使用
//定义一个变量[layer],用来表示Photoshop的当前图层。
var layer = app.activeDocument.activeLayer;
//定义一个变量[brightness],用来表示光晕的明亮程度。
var brightness = 80;
//定义一个变量[flareCenter],用来表示光晕的中心点坐标,在此设置中心点在文档左上角。
var flareCenter = [60,40];
//定义一个变量[lensType],用来表示镜头光晕的类型。
var lensType = LensType.ZOOMLENS;
//调用[layer]对象的[applyLensFlare]方法,给图层添加镜头光晕效果。
layer.applyLensFlare(brightness, flareCenter, lensType);
扩散亮光滤镜的使用
//定义一个变量[graininess],用来设置亮光中的颗粒密度。
var graininess = 1;
//定义一个变量[glowAmount],设置亮光的强度。值越大,光芒越强烈。
var glowAmount = 10;
//定义一个变量[clearAmount],设置图像中受亮光影响的范围。值越大,受影响的范围越小,图像越清晰。
var clearAmount = 15;
//定义一个变量[layer],用来表示Photoshop的当前图层。
var layer = app.activeDocument.activeLayer;
//调用[layer]对象的[applyDiffuseGlow]方法,给图层添加扩散亮光效果。
layer.applyDiffuseGlow(graininess, glowAmount, clearAmount);
去斑滤镜的使用
//定义一个变量[layer],用来表示Photoshop的当前图层。
var layer = app.activeDocument.activeLayer;
//创建一个持续五次的循环,这样可以使[去斑滤镜]的效果更明显些。
for(var i=0; i<5; i++)
{
//调用[layer]对象的[applyDespeckle]方法,给图层添加去斑效果。
layer.applyDespeckle();
}
高反差保留滤镜的使用
//定义一个变量[layer],用来表示Photoshop的当前图层。
var layer = app.activeDocument.activeLayer;
//定义一个变量[radius],用来设置高反差保留的半径值。
var radius = 240;
//调用[layer]对象的[applyHighPass]方法,给图层添加高反差保留效果。
layer.applyHighPass(radius);
海洋波纹滤镜的使用
//定义一个变量[layer],用来表示Photoshop的当前图层。
var layer = app.activeDocument.activeLayer;
//定义一个变量[size],用来表示波纹的大小。
var size = 10;
//定义一个变量[magnitude],用来表示波纹的幅度。
var magnitude = 15;
//调用[layer]对象的[applyOceanRipple]方法,给图层添加海洋波纹效果。
layer.applyOceanRipple(size, magnitude);
挤压滤镜的使用
//定义一个变量[layer],用来表示Photoshop的当前图层。
var layer = app.activeDocument.activeLayer;
//定义一个变量[amount],用来表示挤压的程度。
var amount = 100;
//调用[layer]对象的[applyPinch]方法,给图层添加挤压效果。
layer.applyPinch(amount);
最大化滤镜的使用
//定义一个变量[layer],用来表示Photoshop的当前图层。
var layer = app.activeDocument.activeLayer;
//定义一个变量[radius],用来表示最大化滤镜的半径值。
var radius = 10;
//调用[layer]对象的[applyMaximum]方法,给图层添加最大化效果。
layer.applyMaximum(radius);
最小化滤镜的使用
//定义一个变量[layer],用来表示Photoshop的当前图层。
var layer = app.activeDocument.activeLayer;
//定义一个变量[radius],用来表示最小化滤镜的半径值。
var radius = 5;
//调用[layer]对象的[applyMinimum]方法,给图层添加最小化效果。
layer.applyMinimum(5);
极坐标滤镜的使用
//定义一个变量[layer],用来表示Photoshop的当前图层。
var layer = app.activeDocument.activeLayer;
//定义一个变量[conversion],用来表示极坐标类型为从平面坐标转极坐标。
var conversion = PolarConversionType.RECTANGULARTOPOLAR;
//调用[layer]对象的[applyPolarCoordinates]方法,给图层添加极坐标效果。
layer.applyPolarCoordinates(conversion);
综合实例
更改默认历史记录数量
//定义一个变量[number],用来设置系统最多保存50条历史记录。
var number = 50;
//修改[app]对象的[preferences]属性,将[numberofHistoryStates]参数设置为50。
app.preferences.numberofHistoryStates = number;
//调用[app]对象的[beep]方法,用于在完成一系列动作后,播放一个系统音效提示用户操作完成。
app.beep();
网友评论