首页

PS教程

PSD素材

PS素材

背景图片

高清图片

字体下载

矢量素材

PS资源

PS作品

会员专区
注册 / 登录
收藏
入门教程照片处理抠图教程调色教程文字特效经典合成鼠绘教程滤镜特效� � �GIF 动画签名溶图创意设计
 您当前的位置� PhotoShop资源� >> PS教程 >> PS教程 >> 入门教程 >> 正文

如何用PhotoShop脚本语言处理图片教程

� 作者来源:站酷 Gaoyoungor 翻译 编辑整理�PhotoShop资源� 更新时间� 2013-10-16 录入� 黄叶飞扬 �



步骤十一:

接下来执行如下代码:

docRef_1.activeLayer.invert();

docRef_1.activeLayer.blendMode = BlendMode.COLORBLEND;

docRef_1.activeLayer.opacity = 50;

docRef_1.activeLayer.merge();

这里的每条代码应该都像白话文一样浅显易懂,该过程在ps软件中实现方法是:快捷键Ctrl+I图层反相,然后更�图层混合模式为颜色,并且�图层面板修改图层的不透明度最后Ctrl+E合并图层。(译者注:倡导无损编辑,杜绝轻易合�图层

运行脚本,我们将得到下图�

按此在新窗口浏览图片


步骤十二:

现在我们想给图片添加一个边框,我的实现方法是用脚本命令扩大画布,然后新建一�图层并全选填充白色。在此之前我, 们需要根据图片的尺寸算出边框的合适尺寸。经过一系列尝试和失败,我发现短边的7.5%是较为合适的边框厚度。当然,我们首先要找出短边再来算出它�7%,最后还要为画布的宽度和高度增加双倍的该尺寸。简而言之就�画布的宽和高都要增加图片短边�15%。代码如下:

var width = docRef_1.width;

var height = docRef_1.height;

if (width <= height) { var borderSize = Math.round(width * 0.15); }

else { var borderSize = Math.round(height * 0.15); }

docRef_1.resizeCanvas(width + borderSize, height + borderSize);

Okay,我们来分析一下这段脚本。前两行代码很简单,我们分别定义了一个变量等于该文件的宽度和高度。然后是一个“if条件语句”来声明如果宽度小于或等于高度则执行花括号内的命令。命令的第一部分大家很熟悉,就是新建一个变量,第二部分则使用使用了一个叫做“round”的Math Function(数学函数),作用就是对括号里的任意数值取整。这样做是因为有时候宽度或者高度的15%可能为小数(译者注:避免出现像素不精确的问题)。接下来的“else”语句表明如果宽度大于高度则执行该行代码花括号里的命令。最后一行代码根据边框的厚度重新定义�画布大小。注意图片的周围加上�1px的灰色边框因为考虑到文�背景也是白色以示区分,和脚本操作无关�

按此在新窗口浏览图片


步骤十三:

现在你测试已有的脚本或许会觉得这看起来不错,但是背景图层会因�画布尺寸的更改而变化,造成边框尺寸的变化。所以我们需要新建一�图层将边框画在里面并且和图片所在的图层合并。代码如下:

docRef_1.artLayers.add();

docRef_1.activeLayer.move(docRef_1.backgroundLayer, ElementPlacement.PLACEBEFORE); docRef_1.selection.selectAll();

docRef_1.selection.fill(white);

docRef_1.selection.deselect();

docRef_1.layers[0].merge();

这段代码中我们唯一不熟悉的部分就是我们用在即将创建的一个活�图层上的move(移动)命令。括号里的第一部分指明引用我们所定义�背景图层,第二部分是用方法ElementPlacement.PLACEBEFORE移动活动图层到引用的图层(即这里�背景层)上方�

步骤十四:

下面我们来添加图片的阴影图层,这将成�背景图层上方一个黑色填充层。代码如下:

docRef_1.artLayers.add();

docRef_1.activeLayer.move(docRef_1.backgroundLayer,ElementPlacement.PLACEBEFORE); docRef_1.selection.selectAll();

docRef_1.selection.fill(black);

docRef_1.selection.deselect();

这段代码和上一步的几乎相同,只是我们给该图层填充了黑色,同时也还没有合并图层。如果这时候你运行脚本,就画布中的内容而言应该看不出和上一步有什么变化�

步骤十五:

Okay,下面我想要再次扩展画布让它能适应图片任意角度的旋转,这需要一点简单的毕达哥拉斯经典定理。代码如下:

var width = docRef_1.width;

var height = docRef_1.height;

var newSize = Math.round(Math.sqrt(width * width + height * height)) + borderSiz, e; docRef_1.resizeCanvas(newSize, newSize)

前两行代码为宽度和高度各自定义了一个变量。第三行则为当前文件的新尺寸定义了一个变量,函数Math.sqrt 是指对括号里的内容开根号,最后我们加上了边框的距离最主要是考虑到我们要施加的阴�图层。最后一行重定了画布大小�

按此在新窗口浏览图片


步骤十六:

为了创建阴影,我们希望能用脚本控制之前创建黑�图层对它施加一个高斯模�滤镜

通过尝试我发现高斯模糊的大小用边框的1/3,不透明度采�50%能达到较好的效果。该部分代码如下�

docRef_1.activeLayer.applyGaussianBlur(borderSize / 3);

docRef_1.activeLayer.opacity = 50;

第一行的代码原理同第六步中我们对图片所�图层施加平均模糊滤镜

按此在新窗口浏览图片


步骤十七:

现在我们想用脚本控制图片和阴影一起旋转,然后合并它们,这比先合并后旋转能得到更好的结果。我们希望脚本能够实现图片每次的旋转尺寸�-20°�20°之间的随机值,可以编写如下代码�

var angle = Math.round(Math.random() * 40) - 20; docRef_1.activeLayer.rotate(angle, AnchorPosition.MIDDLECENTER); docRef_1.activeLayer = docRef_1.layers[0]; docRef_1.activeLayer.rotate(angle, AnchorPosition.MIDDLECENTER); docRef_1.activeLayer.merge();

在第一行代码中,函数Math.random可以得到一�0�1之间的随机值,不是一个整数,这也是我们使用Math.round取整函数的原因。为了得�-20�20之间的随机数,我们用40�0�1之间的小数相乘并且对结果取整,再减去20,将所得的结果保存在变量angle中。下面执行旋转操作的代码将作用于当前的活�图层即阴影层,第二行代码括号里定义了旋转的角度为angle,而锚点的位置则是中心点。在ps软件中可以用过快捷键Ctrl+T执行旋转操作。最后三行代码执行了选中图片图层,和阴影图层旋转相同角度并且合并的操作。结果如下图�

按此在新窗口浏览图片

结语:

这只是ps脚本语言的一个入门,重在理解它的方法和思想。如果你能阅读官方api文档继续学习,或许能实现很多手动操作软件无法实现的效果�

或者你代码能力够强,也能用脚本语言为大家编写ps外挂滤镜和插件。当然,最重要的还是对设计的理解和追求,这要胜过所有的软件技巧�



≡★ 免 责 声 明 ★≡

除本站原创外,本站所提供的所有教程均收集整理自网络,其版权归该教程直原始作者或原始出处所有!

除特别声明外,您可以在保持教程的完整和注明来源的前提下免费复制、转贴本站所提供的所有教程;但是,不可以盗链本站的图片!

除特别声明外,在未经许可的情况下您不得将本站所提供的任何教�(包括资源)用于商业用途;

如果确有需要,请自行与该教程的原始所有权者(即:原始作者或出处)联系,本站不提供相关服务;否则,由此而引发的一切后果由您自负!