[分享]Photoshop JavaScript 縮圖小程式

分享我寫的一個簡單的 JavaScript 小程式。
----------------------------------
程式名稱:影像尺寸3000。
使用語言:JavaScript (Adobe Photoshop CC 2015 ExtendScript)
程式功能:把照片縮放成指定尺寸,不受直橫幅或來源大小拘束。
執行環境:Windows 作業系統 + Photoshop CC 2015。
     (Mac OS 及PS較舊版本應該也能執行,但未經測試不敢斷言)
適用對象:慣用PS、常有大量縮圖工作又不想因此另裝軟體的人。
檔案名稱:影像尺寸3000.jsx

----------前言-------------------
現代數位相機拍攝的照片,原始影像往往解析度很大,不利網路上傳或節省儲存空間。所以將照片適度縮小,已經是不少人的經常性工作。

當然在PS中,我們可以錄製一個[影像尺寸]功能的「動作」儲存,再用"批次處理"方式,就可以一次處理大量照片,減輕工作負擔。

但是...用PS的[影像尺寸]縮放功能錄製動作有一個"缺點",它無法"固定尺寸縮圖"同時兼顧資料夾裡"直橫幅混雜+影像大小不同"。固然選用「%」比率功能是可以應付直橫幅的不同,但來源照片偶有裁切,並非始終固定尺寸。所以依「%」比率功能所作成的縮圖,也就會出現大小不等的問題。

常見的做法是:把直橫幅分開於不同資料夾,再選用[影像尺寸裡]「像素」的功能,設定固定像素寬度(或高度),分別錄製成不同的「動作」去處理,之後再把直橫幅照片收在一起,這就讓工作變得繁瑣與增加負擔。

這個程式就是想避免這種麻煩,讓同一資料夾內不管直幅橫幅、也不管影像大小,通通縮成同一尺寸規格的照片。

坊間有些現成軟體可以做到這一點,但如果能不用為了這個簡單功能,再去安裝另一軟體來增加電腦的複雜性,也是不錯的主意。何況或許也會有人"比較信任PS的縮圖演算",希望影像處理工作最好能從頭到尾都由PS包辦。所以對某些人而言,這小程式就有存在的意義。

--------使用方法-----------
1.下載下方zip檔案,執行解壓縮後可見"影像尺寸3000.jsx",將它存放於硬碟任一資料夾之中(請記住你放在哪裡)。

2.啟動Photoshop,打開任一照片檔案。

3.點開「動作」面板,按[建立新增動作],給這動作取個名字,例如:"縮圖3000"。(開始錄製)

4.按[檔案\指令碼\瀏覽],出現檔案Dialog。找到"影像尺寸3000.jsx",點它一下,再按「載入」。
[分享]Photoshop JavaScript 縮圖小程式

[分享]Photoshop JavaScript 縮圖小程式

5.如果你所開啟的照片,長邊大於3000像素,那你就會看到影像被縮為"長邊是3000px"的照片,不管這張照片是直幅或橫幅。

6.如果照片長邊小於3000,那將沒有任何變化發生。因為我程式裡,預設了"避開小尺寸的縮放"。

7.這程式不會幫你的照片存檔,如有需求,請自行在錄製動作中添加。

8.按停止錄製icon,結束動作錄製。

9.選用PS的[檔案\自動\批次處理],指定上述動作,就可以針對整個資料夾進行固定尺寸縮圖,而不用理會直橫幅混雜存放的問題。

*這程式設計來取代PS的[影像\影像尺寸]功能。它遇到大的就縮小,遇到小的就放大,但我們可以選擇"只處理大的"。而縮成長邊3000像素只是預設值,當然也可以改。

--------如何修改參數?--------------
1.用Windows「記事本」開啟"影像尺寸3000.jsx"檔案。(它是純文字檔,千萬不可以用小作家或Word這類有插入控制碼的編輯器修改

2.你只需修改兩處:
[分享]Photoshop JavaScript 縮圖小程式

3.按[檔案\另存新檔],為它取個好辨認的名字。特別注意:副檔名是 .jsx ,這不可以改。

4.你可以根據不同需求,另存新檔好幾個,透過檔名的辨識,錄製許多不同尺寸的縮圖「動作」以符工作需要。例如:縮圖800.jsx、縮圖1024.jsx ...等等。

--------注意事項----------
1.這類 .jsx 的JavaScript 程式,在PS裡稱為"指令碼"。如遇到"指令碼警告"錯誤訊息,就是程式有錯誤產生。

2.別誤用全形字修改數值,解譯器不認識全形數字。注意全形空白,不可誤入"程式區"(看上圖)。

3.PS動作錄製完畢之後,如再去變更對應的??????.jsx檔案檔名、或是將它移往別的資料夾,都會造成"指令碼不存在"的執行錯誤,需要重新錄製動作。

--------後語-------
*本來只是寫來自用,但既然已經寫了,分享他人也於己無損(只是添加一些防呆程式碼與說明而已),芝麻綠豆小東西送給有緣人,還請不嫌棄。

*這程式在本人電腦上執行多時並無問題,但並未於其他環境廣泛測試,如有未盡理想或誤漏之處,還請先進不吝指正。

*這是未經編譯的明碼程式,不會有任何夾帶惡意程式之可能,不是聞西的"要你命3000",盡可放心。


附加壓縮檔: 201512/mobile01-6a406755e6f8558cb40b63c4fc149f7f.zip
2015-12-22 1:59 發佈
好專業的文章,謝謝樓主的慷慨方享,幫我們解決大批縮圖的麻煩,真棒。


widther wrote:
分享我寫的一個簡單的...(恕刪)
美立故
widther wrote:
分享我寫的一個簡單...(恕刪)
widther大大

之前一直沒有大批縮圖或腳本的需求,所以一直沒去了解指令碼
現在看到您分享的文章才知道原來Photoshop指令碼可以使用JavaScript語法去寫!
謝謝您分享好程式!

好讚

widther wrote:
分享我寫的一個簡單...(恕刪)
我是攝影幼幼班
AVAVA wrote:
好專業的文章,謝謝...(恕刪)
ynamei wrote:
美立故...(恕刪)
badbughp wrote:
好讚...(恕刪)

謝謝鼓勵!希望大家喜歡。


shibuy wrote:
原來Photoshop指令碼可以使用JavaScript語法去寫!...(恕刪)

對啊!PS很多功能都可以用Script程式去控制,隨用戶的個別需求撰寫程序,可以增加工作效率、減輕工作負擔。

Photoshop 不只支援JavaScript,也支援AppleScript、VbScript 程式語言。

比較麻煩的是,除了基本的JavaScript語言,還得去學習PS獨有的擴充功能與物件,還好Adobe提供的發展支援還不錯。
如有有興趣玩玩看。可以參考下列網頁:

Photoshop 近年各版本的 SDK
http://www.adobe.com/devnet/photoshop/sdk.html

Photoshop Scripting 各版本 Guide & Reference ,豐富的pdf 文件:
http://www.adobe.com/devnet/photoshop/scripting.html

ExtendScript Toolkit 一個簡單的發展介面,內含許多範例程式
http://www.adobe.com/devnet/scripting/estk.html
原來PS可以這樣玩,真是太有趣了,感謝W大分享,您是好人
widther wrote:
分享我寫的一個簡單的(恕刪)


請問如何添加銳化參數(大圖變小圖)
rocaf wrote:
請問如何添加銳化參數(恕刪)

一樓我在[使用方法]中推薦利用[錄製動作]方式,使縮圖操作靈活彈性多樣化。使用[動作錄製]就意味著,你可以在這個動作組合中添加任何自已所需的效果,比如插入一個[濾鏡/銳利化/智慧型銳利化],這樣就可以在縮圖進行中順便把畫面銳利化一起完成。

PS裡的銳利技巧很多,如要在程式裡加入一個基本的銳利化效果固然也不難,但就會變成"程式很僵化",這個銳化效果的輕重、無法隨各人口味不同而靈活選擇了。又如要讓使用者可以任意修改銳化參數,那這隻小程式就必須再寫一個調整參數的介面,那工程就太大太不划算了。
內文搜尋
X
評分
評分
複製連結
Mobile01提醒您
您目前瀏覽的是行動版網頁
是否切換到電腦版網頁呢?