2013-01-12 229 views
1

我想寫一個腳本來應用Photoshop濾鏡。我在尋找this blog這似乎有一些很好的建議,但是當我嘗試基本示例(下面列出)時,出現以下錯誤。Photoshop操作腳本失敗

Traceback (most recent call last): 
    File "C:\Users\Daniel\EclipseWorkspace\PhotoScript\src\scriptLaunch.py", line 3, in <module> 
    psApp = win32com.client.Dispatch("Photoshop.Application") 
    File "C:\Python27\lib\site-packages\win32com\client\__init__.py", line 95, in Dispatch 
    dispatch, userName = dynamic._GetGoodDispatchAndUserName(dispatch,userName,clsctx) 
    File "C:\Python27\lib\site-packages\win32com\client\dynamic.py", line 108, in _GetGoodDispatchAndUserName 
    return (_GetGoodDispatch(IDispatch, clsctx), userName) 
    File "C:\Python27\lib\site-packages\win32com\client\dynamic.py", line 85, in _GetGoodDispatch 
    IDispatch = pythoncom.CoCreateInstance(IDispatch, None, clsctx, pythoncom.IID_IDispatch) 
pywintypes.com_error: (-2147221005, 'Invalid class string', None, None) 

我不知道是什麼原因導致了這個問題。 This solution已經實施,所以我不知道該怎麼做。我上的PyDev和Photoshop Elements運行Python 2.7版10

我的代碼:

import win32com.client 

psApp = win32com.client.Dispatch("Photoshop.Application") //the line causing the error 

psApp.Open(r"D:\temp\blah.psd")   # Opens a PSD file 
doc = psApp.Application.ActiveDocument # Get active document object 
layer = doc.ArtLayers[0]    # Get the bottom-most layer 
layer.AdjustBrightnessContrast(20,-15) # Bright +20, Contrast -15 
doc.Save() 

回答

1

我敢肯定Photoshop的API僅適用於Photoshop的CSX版本,而不是 '元素'。我認爲這是說班級不可用,因爲您沒有必要的.dll文件(或者如果您使用的是Mac,則是相同的)。 http://www.adobe.com/devnet/photoshop/sdk.html

+0

啊,這會阻尼它。你碰巧知道是否像appscript(或一些相當的東西)的工作? – Daniel

+0

如果您的Photoshop軟件與Extendscript Toolkit一起打包,您應該可以使用javascript,applescript或vbscript編寫腳本。但我認爲這也可能只是CS。也許可以試試Adobe開發人員論壇,看看他們說了些什麼。 – pdizz