回論壇首頁
論壇主選單 > ☆色彩管理/影音軟體版 > 大頭照製作大教學【下】
作者  
討論話題
 

deshin2


新進會員

2003/06/18 23:41
器材: 其他 其他
(5)  Script 法:此法為終極用法,應該沒有其他方式比此法更有彈性,更具威力,但難度也更高,強烈建議使用photoshop 7.0
依據photoshop說明要用此法可使用VBscript(windows os),appleScript(mac os)及javaScrpt三種,其實使用方式很多,因為
photoshop已成為COM Automation Server,只要你所用的語言支援COM Automation Client接可用,例如C++,perl,Word VBA,Excel VBA.....
小弟以VBscript為例,而使用VBscript至少尚有三種方式:windows內建VBscript法.VBA法(要有MS Office).VB法(要有Visual Basic)
小弟再將範圍縮小為windows內建VBscript法,因為此法免費,不必再買MS office或Visual Basic
0.  先期作業:本例要求先裝好 Windows VBscript Host 及 photoshop scripting 1.0.2a,前者為windows OS內建於較新版本上(98,me,2000,xp)
                          如果沒有(95,nt4)請至http://msdn.microsoft.com/scripting網站下免費下載,而後者沒有內建於photoshop內
       請至Adobe網站http://www.adobe.com/support/downloads免費下載,且安裝時不會檢查序號
1.  建議工作目錄(例如c:\temp)
2.  將input.psd copy至此目錄下
3.  請使用notepad鍵入big.vbs檔如下
'CopyLeft 版權沒有 翻拷不究
Dim appRef
Dim docRef
Set appRef = CreateObject("Photoshop.Application")
appRef.DisplayDialogs = 3
appRef.Preferences.RulerUnits = 2
Set docRef = appRef.Open("c:\temp\input.psd")
docRef.Selection.SelectAll
docRef.Selection.Copy
docRef.Selection.Deselect
Set docRef = appRef.Documents.Add(6, 4, 300, "output.psd")
Dim xmax, ymax
Dim i, j
Dim x, y
xmax = 6 / 1.5
ymax = 4 / 2
For j = 1 To ymax Step 1
For i = 1 To xmax Step 1
x = (i - 1) * 1.5
y = (j - 1) * 2
docRef.Paste
'docRef.ActiveLayer.ApplyOffset   x - 2.25, y - 1, psOffsetWrapAround
docRef.ActiveLayer.ApplyOffset   x - 2.25, y - 1, 2
Next
Next
appRef.ActiveDocument.SaveAs ("c:\temp\output.psd")
appRef.Quit
4.  於檔案總管中雙擊big.vbs以執行此script,此時不必執行photoshop
5.  script會自動載入photoshop,執行應有的動作,關閉photoshop
6.  最後結果在output.psd檔案上
此程式請容劣者不作說明,因為懂Script者不屑看,不懂Script者說了或許也滿臉疑慮
相信我,Script將是photoshop自動化的終極工具,無所不能,無所不至

◎另檢附VB法的程式部份,有Visual Basic請不吝參考
Private Sub big_Click()

Dim appRef As Photoshop.Application
Dim docRef As Photoshop.Document

Set appRef = CreateObject("Photoshop.Application")

appRef.DisplayDialogs = psDisplayNoDialogs
appRef.Preferences.RulerUnits = psInches

Set docRef = appRef.Open("c:\temp\input.psd")
docRef.Selection.SelectAll
docRef.Selection.Copy
docRef.Selection.Deselect

Set docRef = appRef.Documents.Add(6, 4, 300, "output.psd")

Dim xmax, ymax As Integer
Dim i, j As Integer
Dim x, y As Double

xmax = 6 / 1.5
ymax = 4 / 2

For j = 1 To ymax Step 1
For i = 1 To xmax Step 1
x = (i - 1) * 1.5
y = (j - 1) * 2

docRef.Paste
docRef.ActiveLayer.ApplyOffset x - 2.25, y - 1, psOffsetWrapAround

Next
Next


appRef.ActiveDocument.SaveAs ("c:\temp\output.psd")

appRef.Quit
End Sub
回上一層 第1頁 / 共0頁
手札小舖熱門商品
數位攝影達人超值包【就是愛 構圖】+【數位單眼達人速成】74折
今年VIP會員招募-超大無敵1.5G相簿再加贈好禮!
【台灣私房景點全集】共5冊,合購73折再贈進口黑卡
【我的夢幻人像鏡】2013最新增訂版!
【Nikon DX 達人聖經】手札聖經系列重出江湖!
攝影家手札數位影像坊DV哈燒網KeyBuy藝廊論壇
服務信箱:242204 新莊副都心郵局第12信箱 │ 會員服務部:02-85215082(上班時間早上9點~下午6點) 和平東路三段276號 │ 廣告專線:0937-887229 │ 總瀏覽1165048851人 │ 線上1720人
攝影家手札科技有限公司 版權所有 © 2017 PhotoSharp All Rights Reserved. 非經許可,請勿任意轉載、出版本站內容