回論壇首頁
論壇主選單 > ☆色彩管理/影音軟體版 > PS Scripting-Smart Resize
作者  
討論話題
 

hugoyu


網路會員

2005/10/11 14:00
器材: 其他 其他
以往縮圖的時候,必須依照直幅或橫幅照片來決定不同的 Width, Height
如果只有幾張照片還好,照片一多對於批次化處理來講,多了一個必須由人來做判斷的過程
偏偏 action 無法解決這個問題,除非對直幅跟橫幅照片分別過一個縮圖的 action
(如果有人知道怎麼做的話,請跟我說一下)

這個問題其實可以用 Photoshop Scripting 來解決
底下是用以前為了放小圖到 P910i 時所寫的一段 script 改的

//////////////////////////////////////////////////////

if (app.documents.length == 0)
{
var docRef = app.documents.add();
}
else
{
var docRef = app.activeDocument;
}

var PH = 800; // 視需要修改
var PW = 600; // 視需要修改
var PRESOLUTION = 72;
app.preferences.rulerUnits = Units.PIXELS;

// 得到目前圖片的寬跟高
var dh = docRef.height;
var dw = docRef.width;

var fw = PW;
var fh = PH;

// 直幅橫幅圖片的處理
if( dh < dw)
{
var fw = PH;
var fh = PW;
}

// 開始縮圖
docRef.resizeImage(fw, fh, PRESOLUTION, ResampleMethod.BICUBIC);

//////////////////////////////////////////////////////

打開記事本,把兩個斜線中的程式碼複製貼到新文件,存檔,檔名可以隨便取
以 photoshop cs2 為例
我把檔名取為 smart_resize.jsx,並存到 C:\Program Files\Adobe\Adobe Photoshop CS2\Presets\Scripts (在這個目錄裡面你可以看到其他的 script 檔案)

程式碼裡面的 PH 跟 PW 請視需要修改
這兩個變數代表你照片所需要的 Width 跟 Height

好了之後,打開 photoshop (如果本來就開啟的話,請關掉重開)
這時候我們可以試一下,各開直幅跟橫幅照片各一張
接下來點選功能表的 File > Scripts 會發現多了一個 smart_resize (視你取的檔名而有所不同)
直接點下去之後
橫幅照片會乖乖的讓寬 = 800 pixel, 長 = 600 pixel
直幅反之
這樣就算完成了

更方便一點的可以這樣作
如果你已經製作了一個縮圖專用的 action 的話 (縮圖、銳利化、加框、簽名...等等)
我們可以把執行 smart_resize 這個動作,加到 script 裡面
這麼一來,以往必須多做的 resize 就可以一次解決了
回上一層 第1頁 / 共0頁
手札小舖熱門商品
【Canon EOS 6D 實戰攻略】年度新書上架!
【Nikon D600 實戰攻略】全幅新戰力完整剖析!
【Canon EOS M 輕鬆活用】電子書免費下載!
【Canon EOS 1D X / 5D Mark III 完全活用解析】長銷熱賣中!
【Canon EOS 650D 完全活用】好評發售!
攝影家手札數位影像坊DV哈燒網KeyBuy藝廊論壇
服務信箱:242204 新莊副都心郵局第12信箱 │ 會員服務部:02-85215082(上班時間早上9點~下午6點) 和平東路三段276號 │ 廣告專線:0937-887229 │ 總瀏覽1166851858人 │ 線上1437人
攝影家手札科技有限公司 版權所有 © 2017 PhotoSharp All Rights Reserved. 非經許可,請勿任意轉載、出版本站內容