雖然說一直想學(xué)ps,但一直沒怎么學(xué)得好惯豆,練習(xí)不夠池磁,毅力不夠。楷兽。地熄。最近突然發(fā)現(xiàn)了一個玩ps的新姿勢,以前一直不知道Photoshop還可以用程序員的姿勢來玩芯杀,于是趁著有興趣的時候玩了玩端考,發(fā)現(xiàn)好像還不錯額,忍不住想記錄一下揭厚。
什么才是程序員的姿勢呢却特?那就是寫腳本。不錯筛圆,ps也能通過寫腳本的方式來進行p圖裂明,而且還是JavaScript。接下來就來看看怎么做吧-太援。
ps的腳本可以用JavaScript寫闽晦,也就意味著能寫JavaScript的工具都能用來寫ps的腳本扳碍,官方提供的是ExtendScript IDE,不過尼荆,因為我沒有安裝左腔,為了便利,這里就用的是Sublime Text捅儒,其實記事本也可以哦液样,只不過它的顏值實在不高罷了。
那么先來看看ps腳本的基本概念吧巧还。
首先鞭莽,ps腳本是ps中最為強大的功能,可以完成大量的重復(fù)性勞動或者制作非常復(fù)雜的特殊效果等麸祷。
ps腳本的語法其實也還是比較簡單的澎怒,代碼量比較少就可以完成一些任務(wù),比如說下面一句:
app.activeDocument.close()
就從語義上也比較好理解阶牍,其中的app就代表著photoshop喷面,這句話就意味著將Photoshop的當前文檔關(guān)閉了,看起來蠻簡單的走孽。很多都是直譯:
// 將當前文檔的當前圖層的透明度設(shè)置為10
app.activeDocument.activeLayer.alpha = 10
// 將當前文檔的當前選區(qū)執(zhí)行羽化命令惧辈,羽化值為10
app.activeDocument.selection.feather(10)
由于ps腳本的操作還是蠻多的,基本上能用手操作的都能做磕瓷。這里就看看在圖像處理中的一點應(yīng)用就是了-盒齿。
比如說修改亮度和對比度,新建一個jsx文件困食,寫下如下代碼:
// 獲取到當前層
var layer = app.activeDocument.activeLayer;
// 定義一個變量边翁,表示亮度
var brightness = 30;
// 定義一個變量,表示對比度
var contrast = 30;
layer.adjustBrightnessContrast(brightness,contrast);
然后保存到一個地方硕盹。接著打開ps符匾,拽進一張圖片:
接著就是點擊文件--->腳本---->瀏覽,找到剛才寫的文件:
然后點擊打開莱睁。我的是mac待讳,在windows上也一樣。這時候就會發(fā)現(xiàn)仰剿,照片果然發(fā)生了變化创淡,證明腳本執(zhí)行了:
為了快速調(diào)出瀏覽腳本頁面,我們還可以為其設(shè)置快捷鍵南吮。
首先點編輯---->鍵盤快捷鍵:
接著點擊文件左側(cè)三角形展開:
滾動到下面琳彩,選擇里面的瀏覽右邊:
這里就可以輸入快捷鍵了,按個人的喜好輸入吧。輸入后露乏,點擊右邊的接受碧浊,然后確定就是了。接下來就可以按自己設(shè)置的快捷鍵弄出瀏覽菜單了瘟仿。
這樣子箱锐,也就可以比較快速的執(zhí)行腳本了。再來看幾組圖像處理的腳本劳较。
使用自動對比度:
var layer = app.activeDocument.activeLayer;
layer.autoContrast();
保存后驹止,接著按上面設(shè)置的快捷鍵,然后和上面一樣執(zhí)行腳本就能看到效果了观蜗。
使用曲線:
var layer = app.activeDocument.activeLayer;
// 表示曲線上三個點的坐標臊恋,每組第一個值表示輸入值,第二個值表示輸出值
var curveShape = [[30,2],[85,100],[255,255]];
layer.adjustCurves(curveShape);
使用高斯模糊濾鏡
var layer = app.activeDocument.activeLayer;
var radius = 2.5;
layer.applyGaussianBlur(radius); //高斯模糊效果墓捻,其他濾鏡也是apply開頭的方法
這時候抖仅,點擊腳本就可以添加指定的高斯模糊效果了。
太多了砖第,上面就隨便寫了點撤卢,基本上所有的功能都能通過代碼操作,感興趣可以下載文檔來看看梧兼,http://www.adobe.com/devnet/photoshop/scripting.html 凸丸,除了JavaScript還可以用AppleScript和VBScript。
等我操作一會兒后就發(fā)現(xiàn)袱院,嗯,還是直接在ps上操作方便瞭稼。忽洛。
不過用腳本本來定義的就是代替那種大量重復(fù)性勞動的工作,因此环肘,用來批量處理一些東西還是不錯的欲虚,比如說給圖片批量添加水印,如下:
// 彈出文件夾選擇窗口
var inputFolder = Folder.selectDialog("請選擇圖片所在的文件夾:");
if(inputFolder != null){
// 獲得文件夾下所有文件
var fileList = inputFolder.getFiles();
for(var i=0;i < fileList.length;i++){
if(fileList[i] instanceof File && fileList[i].hidden == false){
var docRef = open(fileList[i]);
var layerRef = docRef.artLayers.add();
layerRef.kind = LayerKind.TEXT; //設(shè)置新建圖層為文本類型
layerRef.textItem.contents = "CopyRight @nobody"; // 設(shè)置版權(quán)信息文本
layerRef.textItem.size = docRef.width/30; //根據(jù)當前圖片寬度悔雹,大致計算出文字大小
var color = new RGBColor();
color.red = 255;
color.green = 255;
color.blue = 255;
var sc = new SolidColor();
sc.rgb = color;
layerRef.textItem.color = sc;
layerRef.fillOpacity = 50; //設(shè)置透明度為半透明
layerRef.translate(0,docRef.height/2-72);
layerRef.merge(); //合并
docRef.save(); //保存文檔
docRef.close();
}
}
}
保存之后复哆,將需要添加水印的圖片放在一個文件夾下,然后在ps中使用快捷鍵執(zhí)行腳本腌零,看看運行情況:
然后看看執(zhí)行結(jié)果:
果然添加了水印益涧。
以程序員的姿勢來玩PS就是這樣玩的锈锤,哈哈,當然要處理一些照片或設(shè)計啥的,當然還是直接使用PS要方便久免。至于這東西嘛浅辙,感覺拿來裝裝逼還是不錯的。阎姥。其實有些時候還是有比較方便的地方嘛记舆。