九九精品影院-九九精品在线-九九精品在线播放-九九九国产-国产成+人+综合+亚洲不卡-国产成a人片在线观看视频

誰說設計師不會寫代碼?超簡單Photoshop腳本語言介紹

2013-12-17    藍藍設計的小編

轉載藍藍設計(   www.indbiotech.com.cn  )是一家專注而深入的界面設計公司,為期望卓越的國內外企業提供有效的   BS界面設計 、 cs界面設計 、  ipad界面設計   、  包裝設計 、  圖標定制 、  用戶體驗 、交互設計、   網站建設 平面設計服務

來源:http://www.uisdc.com/100-things-you-should-know-about-design

如果您想訂閱本博客內容,每天自動發到您的郵箱中,   請點這里 

自動化對每個設計師的工作來說是很有用的。它可以在重復的任務上節省寶貴的時間,還能夠幫我們更快捷、更容易的解決一系列問題。

你可以使用photoshop的動作來使工作流程自動化,這是很流行的,大多數人都知道并且已經在使用的方法。今天,我們將介紹給你一種高級的自動化技巧:腳本語言。所有的這一切僅僅需要你有一點點關于JavaScript的基本知識,這對于我們中的一些網頁設計師往往都是具備的。

我很多年前就知道Photoshop的腳本語言,但是我幾個月前才開始決定研究它。我忽視了它是因為我認為那是聰明的具有數學思維能力的程序員的領域。但是我錯了,今天我將要來告訴大家,盡管它需要一些基本的程序技巧,腳本語言并不是那么難掌握。

但是,一開始,我們得回答以下這幾個明顯的問題:

為什么我們需要腳本語言?

為什么我們在Photoshop已經有了很棒的動作之后還要需要學習腳本語言?答案是交互性!當你使用動作時,你不能真正的控制它在不同情況下的表現,就像錄像帶不停的一遍又一遍的播放而沒有任何改變。

00

一個腳本語言更靈活,它表現形式的改變取決于你輸入的參數或者是應用程序的內容。聽起來很有用?不是么?

要求

你不需要是一個會寫腳本語言的高級的程序員。我就僅僅是一個平面設計師,就像你們大多數人一樣。但是你需要對JavaScript至少有一個基本的了解,以及一些屬性和方法的經驗去領悟這篇文章的大部分內容。

01

如果你對JavaScript一點都不了解,別害怕!有很多地方你可以了解程序的一些基本知識。例如:Codecademy,有很棒的完整的交互式課程。

我使用CS5,但是這篇文章中講的也同樣適用于新版本。Adobe從CS5開始已經沒有對其腳本API進行更新。我會選擇看的腳本文檔版本,雖然它是cs6的.

開整

當你開始在PS中記錄動作的時候,你設定了一個達到某一結果的步驟順序,這就是你的算法。然后你按下開始動作,在PS里面就一個接一個的重復你剛才的動作。腳本也差不多,但是不會一步一步的在PS中完成,而是你把它們一條一條的寫出來。在PS里面大多數你想要完成的動作都有相同的功能按鈕可以完成。

02

如果你需要創造一個動作將你的文件從原始大小放大到150%,你需要完成以下幾步:

1,打開圖像-圖像大小

2,長寬輸入150%

3,點擊確定。

同樣的腳本語言會是這樣寫:

1,為這個應用命名為:app

2,選中文件:activeDocument

3,把這個屬性命名為重設圖像大小:resizeImage(width,height)

代碼就是這樣:

03

語言

有三種方式在PS里面寫腳本:在mac上用AppleScript, Windows用VBScript,或者用JavaScript在兩者上都可以。我使用第三種方式,因為它可以跨平臺,并且我有一定JavaScript的基礎。

工具

Adobe有它自己的寫腳本的工具,叫做:ExtendedScript Toolkit.

04

ExtendedScript Toolkit的主界面就是這樣的

這個工具包在PS里面,你可以在這個文件夾中中找到:

Mac OSX: /Applications/Utilities/Adobe Utilities CS6/ExtendScript ToolkitCS6/

Windows: C:\Program Files\Adobe\Adobe Utilities-CS6\ExtendScriptToolkit CS6(64位的Program Files(x86))

ExtendedScript Toolkit的用戶界面非常的簡單。開始寫代碼,第一步就是要在下拉菜單中選擇目標應用。如果PS已經在運行,就可以看下下拉菜單旁邊的綠色鏈接圖標:

05

這個時候,你可以像這樣寫:


06

按cmd+R(或者直接在工具欄上點擊“播放”按鈕)來運行你寫的代碼。ExtendedScript Toolkit將會轉換到PS里面然后彈出提示框:


07

ExtendedScript Toolkit 有一些其他的調試代碼的不錯特性,但是這一段代碼就這樣就夠了。你可以通過:幫助-JavaScript Tools Guide學到更多如何使用它。

你可以使用任何文本編輯來寫代碼,只需要保存為.jsx格式文件就好了。你必須在PS里通過File-Scripts-Browse來找到并運行它。 或者是,在PS里面打開腳本文件。你也可以在腳本的前面加上一行代碼,這樣這個代碼就會常在PS里面打開:

08

直接保存你的代碼在 Photoshop/Presets/Scripts/,然后通過File-Scripts訪問它們。你也可以設定一個快捷鍵,前往Edit-Keyboard Shortcuts,鏈接到 File-Script-[你的代碼名稱],然后選擇一個你想要設定的快捷鍵。

ExtendedScript Toolkit可以在整合的開發環境下運行和調試代碼,同時它還有一個目標模型指示器來安裝,這是很有用的。所以我推薦使用toolkit來寫腳本。不幸的是,Mac版本的有時候會崩潰,所以要記住這一點。

Photoshop對象模型

為了使腳本寫起來簡單些,你需要懂得在Photoshop文件對象模型(DOM)中事件是怎樣互相聯系的。如果你觀察PS本身,理解起來并不困難。PS的DOM里面最主要的對象就是應用程序。在應用程序里面,我們有一個文件夾在PS里面是當前打開的。

每一個文件包含一些元素:例如圖層(被稱為Artlayers),圖層組(layerSets),通道,歷史記錄等等–就像一個普通的PSD文件。

下面就是一個簡單的可視化的PS的DOM。更詳細的包含層級的可以在”Adobe Photoshop CS6 Scripting Guide”Pdf文件中12頁里找到。

09

一個簡單的可視化的Photoshop DOM

這里面的每一個目標都有它自己的屬性和方法你可以編輯它。例如,在一個文件中改變所選圖層的透明度,你就可以前往Application-Document-layer-Opacity然后選擇你的期望值。代碼就是這樣寫:

10

你應該可以猜到,activeDocument和activelayer決定了當前選擇的文件和圖層。

你可以在“Adobe Photoshop CS6 JavaScript Scripting Reference”PDF文件中找到大部分的目標和它們的屬性和方法的說明,或者在ExtendedScript Toolkit中通過前往help-object Model Viewer.

讓我們來看看在一個真實的例子中是如何運行的。在接下來的段落中,我們將會基于一個動作寫一段我們自己的代碼。

用代碼來重現自我旋轉動作

幾年前的圣誕節,我有一個想法就是用動作幫助我畫一個雪花。

畫雪花

1,首先畫一支雪花的圖案。

11

2,復制這一支,同時旋轉一定的角度。


12

3,重復第二步直到一個完整的圓。


13

手動去復制和旋轉每一個元素非常麻煩,所以我想出了一個自動的動作(an action to automate it)去完成它。算法是這樣的:

1,復制元素。

2,使用變化工具按照你所選擇的角度去旋轉這個元素。

3,復制圖層。

4,使用“重復變換”功能。

5,重復動作4和5直到一個完整的圓。

非常不錯!但是這個動作有一個缺點:根據你在第三步設定的角度數值的算法,你只能設定一定數量的雪花的分支。

回到當我還不是很熟悉腳本的時候,我做了幾個版本的動作,每一種產生的雪花都是不同的分支數。

今天,我們將用你輸入分支的數值的動態腳本來重繪這個動作,讓我們開始吧。

算法

當你開始寫腳本的時候,在挖掘代碼本身之前先設定算法是個不錯的主意。在我們的情況下,算法將會是這樣的:

1,詢問用戶輸入分支的數目。

2,計算旋轉的角度。

3,通過第一步設定的數目來復制并旋轉圖層。

首先讓我們從把當前或選定的圖層作為變量保存起來,為了將來使用:

14

在JavaScript 中注意,你可以標記兩條雙斜線(//)做注解。注解被用來為未來相關部分的代碼做解釋但是不影響腳本的運行。

現在讓我們回到我們的算法上。

1,要求用戶輸入

我們通過prompt(message,defaultvalue[,tittle])這個功能來獲取用戶的輸入信息:。這個功能表明一個有著”message”對話框和一個包含這”fefault value”的輸入框。當用戶點擊“確定”,這個給你功能就回到輸入值;因此,我們需要保存它為一個可是用的變量。

15

注意我使用了“orginalStem.name”在這段信息里面。所以對話框會現實所選擇圖層的名稱。

在Mac OS X中,在信息中的第一行是寬的,作用是標題。因此,我們主要的信息應該在第二行。另起一行,輸入“\n”.

在Windows中,你可以在功能中指定第三種參數來設定一個標題:

16

如果我們在PS中運行這個代碼,將會看到這樣一個對話框:


17

當用戶點擊“確定”,輸入值將會保存到stemsAmount變量中。如果用去點擊“取消”,這個功能將會返回一個無效值。這個我們后面要使用到。

2,計算旋轉的角度

為了計算旋轉的角度,我們需要通過分支的數目來分360度(一個整圓):

18

3,復制和旋轉

現在我們已經有了我們需要復制的分支的一切。為了這樣去做,我們將使用“for”循環。它可以讓我們按照我們想要的次數來反復的運行一段代碼。我們的循環將會是這樣的:

19

注意第一個在程序中的對象例子已經有了值為0,但是因為我們第一個圖層已經在畫布上了,我們從1開始這個循環。

為了輔助和旋轉我們的圖層,我們將會使用:duplicate()和rotate(angle,AnchorPosition)函數:在angle里面被旋轉圖層的數目通過復制的指數相乘而得。 Anchorposition決定了哪個圖層將會旋轉的點。當你在PS中使用旋轉工具的時候你可以看到這個點—它看起來是一個小小的加了十字的圓圈。在腳本中,它僅有9個指定的值-i.e.9個位置的錨點:

20

在我們這個情況下,它是這個圖層按鈕的中心。BOTTOMCENTER. PS在這里或那里的一些功能上使用了很多其他的一些常量,你可以在”Adobe Photoshop CS6JavaScript Reference”PDF文件中的197頁找到。因此我們的循環就是這個樣子:


21

完整的代碼就是下面這個樣子,你可以試著運行:


22

最后的潤色

我通常會試著使用腳本來完成我的主要目的。當一切都正確的運行起來的時候,我將會開始優化代碼。在我們這種情況下,我們需要確保用戶在提示框中輸入一個有效的數值—i.e.一個正整數,而且要大于1。

當然,為了不讓PS瘋掉,我們會限制分支的書目,我們規定,小于100.為了這么做, 當他們提交了一個無效的數值的時候 ,我們需要使用一個“while”循環來告訴用戶一個錯誤的信息。而且這個提示框將會一直存在,直到用戶輸入一個有效值或者點擊“取消”按鈕。(記住如果用戶點擊取消將會提示無效值)。

新的代碼將會是這樣的:

23

你可能注意到:我們使用了“isNaN(value)”這個功能,它返回 “true”如果 “value”不是一個數字,同時當我們計算旋轉的角度的時候,“parseInt(value)”把“value”轉換成一個整數。

接下來我們要做的事情是管理圖層,通過為它們增加一個索引來重命名我們的圖層。同事也要確保我們不會把文件的圖層搞亂,讓我們把我們的分支編組。

為圖層重命名不是一個很難的事情。我們只需要使用圖層的“name”屬性,然后為它們增加一個索引數字:

24

PS應用程序界面里的編組被稱為“LayerSet”,我們通過“layerSets”屬性可以進入文件的所有編組。為了給文件增加一個新的組,我們需要稱“layerSet”方法為“add()”:


25

然后,為了把一個圖層增加到組里面,我們會使用“move(relativeobject,ElementPlacement)”函數。請注意,“move()”函數只是把圖層移動到圖層堆,而不是移動到畫布上。(你可以用“trabslate(deltaX[,deltaY])”函數把圖層移動到畫布上)

ElementPlacement是另外一個常量,這個常量決定我們怎樣把的圖層跟 relativeobject 關聯在一起。在我們的案例里,我們使用ElementPlacement.INSIDE 把一個普通圖層放進一個組里面:

26

我們使用 ElementPlacement.PLACEATEND.把每一個拷貝的新圖層放在所有圖層租的底部。結果就是我們的所有圖層都是以上升的順序排列,第一個圖層在頂部,最后一個圖層在底部:


27

你可以在”Adobe Photoshop CS6 Scripting Guide”Pdf文件中202頁里

找到更多關于“ElementPlacement”的內容。

最終代碼

就是它,RotateMe.jsx搞定! 我們最終的代碼就是這樣:

28

29

沒那么難,哈?


30

現在,你可以把這個保存在photoshop/presets/Scripts/文件夾里面,然后前

往File-Script運行。使用不同的形狀和不同的賦值可以產生有趣的結果:

31

總結

你可以從在后面的資源包里面鏈接序號看到,除了文章中介紹的之外還有很多想要講的。但是我希望我們今天所講的能夠激發你的興趣,向你展示了腳本的作用和巨大潛力。

32

如果你想下水試試,讓我們一起來學習和交流經驗吧。你在后面的評論中提出問題或者分享你所做的。如果你不是一個程序員,可以考慮留下一個關于腳本編寫的好主意吧!或許其他的讀者會實現它。讓我們一起來使PS更加有用吧!

資源

1,Adobe Photoshop Scripting ,Adobe Developer Connection

所有的腳本文件和實用功能

2,Adobe Introduction to Scripting ,(PDF),Adobe

這個是一些Adobe應用程序的基本代碼。不錯的是PS的腳本可以適用于所有的其他Adobe產品,你只需要學習應用的DOM,你就可以上路了。

3,Adobe Photoshop CS6 Scripting Guide ,Adobe

在這個PS腳本介紹指南里面,你可以學到寫腳本的基本知識。

4, Adobe Photoshop JavaScript Reference ,(PDF),Adobe

這個文件描述了你可以在PS里面用到的所有的對象和他們的函數以及方法。這也是我在寫腳本的時候用的最多的文件。

5, JavaScript, Mozilla Developer Network

這里面有關于一般的JavaScript函數和用法的各種問題的答案。

6,JavaScript Tools Guide, PDF,Adobe

這里面有一些關于“ExtendedScript Toolkit”的基本信息,和一些高級技

巧。例如文件系統的存取,ScriptUI, XML的使用,sockets等等。

7,PS-Script

一個獨立的關于PS腳本的論壇。我不能注冊參與討論(因為某些未適應系統),但是它有很多可以被發現的解決問題的答案。

8, Photoshop Scripting,Adobe Community

Adobe的PS腳本官方論壇,有一些很好的在用戶使用的過程中遇到的問題的討論。

原文地址:smashingmagazine
譯文地址:mxd.tencent

編譯:騰訊timmliu  校正:sevenshao&charrywang

日歷

鏈接

個人資料

藍藍設計的小編 http://www.indbiotech.com.cn

存檔

亚洲第一页色| 久久成人综合网| 免费毛片播放| 国产精品自拍亚洲| 欧美大片一区| 午夜家庭影院| 欧美1卡一卡二卡三新区| 日韩在线观看免费| 天天做日日爱| 国产视频一区二区在线播放| 999精品视频在线| 欧美a级片视频| 欧美激情一区二区三区在线播放| 一级毛片视频免费| 国产精品自拍在线| 999久久66久6只有精品| a级毛片免费全部播放| 韩国毛片免费大片| 韩国毛片 免费| 国产一区二区精品久| 欧美一级视频免费| 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 国产一区二区精品在线观看| 日韩专区一区| 欧美18性精品| 一级女性全黄生活片免费| 黄色福利片| 午夜久久网| 国产原创中文字幕| 国产一区免费在线观看| 日本在线www| 欧美日本韩国| 日本特黄一级| 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 国产成a人片在线观看视频| 精品国产一区二区三区国产馆| 麻豆系列 在线视频| 可以免费看污视频的网站| 九九精品久久| 午夜家庭影院| 毛片电影网| 日日夜夜婷婷| 亚州视频一区二区| 午夜在线观看视频免费 成人| 精品久久久久久中文| 黄色福利| 二级片在线观看| 久久精品免视看国产成人2021| 天天做日日爱夜夜爽| 国产美女在线观看| 精品国产一区二区三区国产馆| 国产一区二区福利久久| 韩国毛片免费大片| 91麻豆精品国产自产在线观看一区| 青青久久网| 99久久精品费精品国产一区二区| 免费国产在线观看| 亚洲精品永久一区| 日韩欧美一二三区| 毛片电影网| 国产网站免费视频| 二级特黄绝大片免费视频大片| 91麻豆国产| 国产网站麻豆精品视频| 精品久久久久久免费影院| 九九久久国产精品大片| 国产极品精频在线观看| 久久国产一区二区| 午夜欧美成人久久久久久| 午夜久久网| 日韩中文字幕一区| 亚欧乱色一区二区三区| 免费国产在线观看不卡| 久久国产影视免费精品| 天天做人人爱夜夜爽2020| 一级毛片看真人在线视频| 欧美一级视频免费| 国产一区二区精品在线观看| 国产一区二区精品久久91| 久久精品店| 韩国妈妈的朋友在线播放| 国产美女在线观看| 亚欧视频在线| 免费国产一级特黄aa大片在线| 国产一区精品| 久久国产精品自线拍免费| 精品毛片视频| 91麻豆爱豆果冻天美星空| 麻豆系列 在线视频| 一级女性大黄生活片免费| 毛片高清| 久久99中文字幕久久| 成人免费观看的视频黄页| 国产一区二区精品尤物| 黄色免费三级| 国产视频一区二区在线观看| 国产成人精品综合在线| 久久国产一区二区| 成人影院一区二区三区| 九九久久国产精品大片| 精品视频在线观看免费| 日韩一级黄色| 日本在线播放一区| 美女被草网站| 国产伦精品一区二区三区无广告| 欧美激情在线精品video| 日韩专区第一页| 国产一区二区精品久| 日韩免费片| 黄视频网站在线免费观看| 日韩在线观看视频免费| 韩国三级视频网站| 精品国产一区二区三区久 | 日日日夜夜操| 免费国产一级特黄aa大片在线| 国产成人精品综合久久久| 九九久久99| 国产高清视频免费| 韩国毛片基地| 日本在线www| 欧美国产日韩在线| 成人在免费观看视频国产| 高清一级片| 超级乱淫黄漫画免费| 韩国三级视频网站| 久久久久久久免费视频| 国产一区精品| 精品久久久久久中文字幕一区| 97视频免费在线| 精品视频一区二区三区免费| 国产高清在线精品一区a| 国产不卡在线播放| 一级女性全黄久久生活片| 一级女性全黄久久生活片| 深夜做爰性大片中文| 国产视频久久久久| 免费一级片在线| 国产伦理精品| 国产91精品一区二区| 国产一区二区精品尤物| 免费国产在线观看| 国产成人欧美一区二区三区的| 国产极品白嫩美女在线观看看| 欧美电影免费| 免费的黄视频| 日本免费看视频| 久久99欧美| 999精品在线| 国产一区二区精品尤物| 国产精品123| 国产韩国精品一区二区三区| 日本免费乱人伦在线观看| 超级乱淫黄漫画免费| 国产麻豆精品hdvideoss| 欧美激情一区二区三区视频高清| 精品视频在线观看视频免费视频| 香蕉视频一级| 久久国产精品只做精品| 欧美另类videosbestsex久久| 欧美日本免费| 一级毛片看真人在线视频| 欧美一级视频免费| 国产成人精品在线| 台湾毛片| 亚洲 国产精品 日韩| 999久久66久6只有精品| 欧美另类videosbestsex高清| 精品久久久久久影院免费| 午夜家庭影院| 国产一区二区精品久| 黄色免费三级| 国产不卡精品一区二区三区| 黄色短视频网站| 国产成a人片在线观看视频| 亚洲精品影院| 国产成人精品影视| 亚洲女人国产香蕉久久精品| 精品久久久久久中文| 精品久久久久久免费影院| 久久国产影视免费精品| 欧美激情一区二区三区中文字幕| 可以在线看黄的网站| 久久精品人人做人人爽97| 国产伦久视频免费观看 视频| 亚洲第一色在线| 日韩av成人| 国产国语对白一级毛片| 天天做日日干| 中文字幕一区二区三区 精品| 国产一区二区高清视频| 久久国产一区二区| 亚欧成人乱码一区二区| 九九热国产视频| 日本久久久久久久 97久久精品一区二区三区 狠狠色噜噜狠狠狠狠97 日日干综合 五月天婷婷在线观看高清 九色福利视频 | 免费的黄视频| 一级女性全黄久久生活片| 亚洲第一页色| 国产高清在线精品一区二区| 欧美大片一区| 97视频免费在线|