写在前面 �
利用Ps脚本我们可以简化工作流程,甚至能创造出让人震惊的数字艺术。卓越的设计师不是沉迷于幻想,而是将幻想变为现实的人�
而技术,则是你的魔术�... 原文作者Ross Aitken这篇文章写得很详细,力图让每一个读者都能看懂�
本文主要涉及到三块主要技术:调色、添加边框和阴影以及随机旋转。调色的方法是复制图�图层,然后平均模糊取得该图片的平均色�
其后用图片RGB通道直方图校验的方法取得该平均色的色值,并根据各通道颜色比例作出调整,然后用所得的颜色填充复制的图片层�
其后反相,更改混合模式为颜色,降低不透明度,从而形成影楼级调色效果�
添加阴影和边框则主要涉及�画布大小的重定和高斯模糊滤镜。图片的随机旋转则涉及到Math.random(),创建一种随机的效果�
教程最终实现的效果很简单,但通篇教程旨在渗透原理和思想,抛砖引玉,相信聪明的你能发挥才思完成惊人的作品�
感谢Black_Ray大神的贴身技术指导,没有他的帮助这篇文章会夭折�
大家可以查看jsx源文件每一步我都有注明过程及作用,想要学习更多的朋友可以下载ps官方的api文档阅读�
jsx源文件共享:http://vdisk.weibo.com/s/JjyMe(亲测可用)�
官方api文档Photoshop_CS5_s cripting_Guide� http://vdisk.weibo.com/s/JjyTk

脚本控制在常规的ps教程中是很少涉及到的东西,但绝对是值得学习的技巧�
脚本在自动化任务流程控制方面相对于ps action�动作)来说更为强大,而且能完成一些利用photoshop常规软件技巧不能实现的任务�
下面我们来创建一个脚本来编辑照片,让你的图片以一种更为时髦的方式去展示�
介绍�
在这篇教程中,我旨在介绍怎样用脚本来实现这样的效果,但同时也会介绍在photoshop中和该脚本语言的相对应的操作,
从而让大家更能明白怎样去修改你的脚本来实现不同的效果�
Photoshop能编译三种编程语言的脚本:VBs cript,Apples cript和java s cript,其中只有java s cript是跨平台的脚本语言�
所以在这篇教程中我们选择使用java s cript,同时,学习java s cript对于我们也更为有利。即使你从未使用java s cript编过程,
也能很轻易的理解这篇教程,因为我对每一概念都有很细节的讲解。当编写JS代码的时候你可以使用任何适合你自己的编辑器,
较新版本的ps为大家提供了一个叫做Extends cript Tooklkit(以下简称ESTK)的软件,可以让编写这类脚本更为便捷�
通常情况下装好ps都会附带这个软件,如果你安装绿色版的ps或者确实找不到该软件的话(译者著:建议大家直接在开�菜单搜索)可以从这里下载�
注意:ESTK可能不适用于低版本的photoshop软件。使用ESTK编写PS脚本语言的优势在于可以更方便的调试,你甚至可以在直接在该软件
里运行脚本,这在接下来的学习中大家会深有体会。在这片教程中我使用了stock.xhng的这张图片你可以保存这张图片的一个小尺寸版本
来测试你的脚本,而且运行速度会更快。当然,脚本语言能应对不同图片的不同尺寸�
步骤一:
打开你想使用的编辑器,不管是ESTK还是windows平台下的notepad之类的文本编辑器,但不要使用word这类的程序�
如果你使用ESTK,那么窗口的左上角应该会出现一个下�菜单,在这个下拉列表中选择adobe photoshop就能和ps程序链接起来�
现在我们来编写一段简单的程序来验证我们的设置的正确性。将如下的代码输入你的编辑器�
Alert(“Hello World�)
这条简单命令的作用是弹出一个警告框,显示“Hello World�;在这篇教程的过程中我们用警告弹出框来测试我们的部分代码�
使用引号的是表明引号内的字符串是一个字符。现在运行你的脚本,如果你使用的是像notepad之类的常规编辑器,那么运行你脚本
最简单的方法就是将你的脚本储存为“mys cript.jsx�,然后打开ps,文�>脚本>浏览,然后选择你的脚本。如果你使用的是ESTK�
你就只需要点击窗口右上角的播放按钮就可以了。这时候你应该能看到一个警告弹出框。在测试你的脚本之前,请关闭当前在ps中打开的文件�

步骤�:
编辑器中的警告代码段只是来测试设置的正确性,所以这时候我们要把它删掉。每次运行脚本的时候我们都想要运用两个设置�
分别是设置ps的标尺单位为像素和禁止在非需要的情况下出现弹出对话框。在ps内实现该设置的方法是 编辑>首选项>单位和标尺,
然后将标尺的值改为像素,显然关闭对话框只针对脚本语言控制程序的情况。实现该设置的代码如下:
preferences.rulerUnits = Units.PIXELS;
displayDialogs =DialogModes.NO
第一条命令指令PS更改首选项里的单位和标尺的值为像素。我们可以发现代码的引用有明显的分层结构,比如说单位和标尺是属于首选项
下面的一个子选项,显而易见,Photoshop的软件结构也是如此。第二条命令只是将对话框的属性值改为“NO”,在执行脚本的过程中如�
你需要弹出对话框,可以直接更改NO为YES�
步骤三:
现在我们希望用户选择一个文件打开,为此我们需要弹出一个打开文件的对话框,即使我们关闭了对话框的显示但是我们只要编些脚本依然
可以控制对话框的显示。下面我们将定义一个和打开的文件对应的变量,然后复制该文件�背景层。实现代码如下:
open(File(openDialog()));
var docRef_1 = activeDocument
docRef_1.backgroundLayer.duplicate();
第一条命令由三部分组成,the open命令是用来打开括号内的文件,然后the file()命令是抓取括号里的文�路径,但这里我们添加的是
openDialog()命令。所以该命令行的作用是弹出一个对话框让用户选择一个文件,然后程序能获取文�路径并打开它。如果你每次都想打开
同一个文件,那么你可以用具体的文�路径来代替openDialog()代码片段。第二条命令我用var来定义了一个变量docRef_1,该变量名可以�
规范内的任意值,如果我还想打开另一个文件,我就可以定一个名为docRef_2的变量。然后我们把变量docRef_1定义为当前文件�
最后一条命令我们所做的是指�Photoshop复制docRef_1文件中的背景图层,该文件目前也是我们唯一运行的文件。大家会再次发现这和我们在ps�
的操作类似,在ps中,你会选择你想要复�图层所在的文件,然后你要选择该文件中你要复制�图层并复制它。现在运行完整的代码我们将得�
一个拥有你选择的图片的背景图层和在其上方的复制层。如果要在photoshop中完成同样的操作你只需要简单的按Ctrl+O,然后选择图片�
随后右击图层面板�背景图层,选择“复�图层”�

步骤四:
下面我将讲解如何用十六进制代码来定义颜色,同时大家也将看到颜色也可以由RGB的值来表述。在这里我们将定一个白色和一个黑色,
然后将黑色设为前景色,白色设�背景色。实现这个目的有很多其他的方法,但在这个教程里面我们采用这样的脚本命令:
var white = new SolidColor();
white.rgb["hexValue"] = “ffffff�;
var black = new SolidColor();
black.rgb["hexValue"] = �000000�;
foregroundColor =black;
backgroundColor = white
大家很容易就能发现前两行代码和三、四行类似,我们在这里所做的就是定义两个可以任意命名的变量,这里我们根据即将给变量赋于的颜色命名�
随后我们定义该变量�= new SolidColor()�,则是一个创造新颜色的函数。随后便是给该颜色变量定义一个十六进制的颜色变量�
这里是白色我们用�#ffffff”。我们最终要说明的就是变量white就是指白色,black就是指黑色,最后两行代码的目的是设置前景色为黑�背景色为白色。这段代码是相当浅显可读的。在PS软件内与之等价的操作便是点击“D”键充�背景色和前景色。现在试试在ps软件中给前景色和背景色设置任意的值,然后运行整段代码仍然可以的大相同的结果,前景色和背景色都将恢复设置�