PS外掛程式開發簡介

2021-06-12 21:39:40 字數 2917 閱讀 7353

photoshop cs的外掛程式開發其實挺簡單的,做個原理性的介紹

documentation:幫助文件,裡面都英文,可以細細品味,建議入門者可以忽略,反正我覺得比較難懂

photoshopapi:api庫,開發需要呼叫到的庫,不要修改裡面的**

samplecode:例子程式,可以隨意地將裡面的例子改造成你想要的外掛程式

3、開啟samplecode,可以看到各種分類資料夾,對應不同的外掛程式功能,

其中output檔案俠是用來當作編譯輸出目錄的,

入門首先需要學習兩個外掛程式:getter 和 listener,它們在samplecode\automation目錄下

4、getter外掛程式:開啟samplecode\automation\getter\win\getter.sln,編譯生成外掛程式,放到ps外掛程式目錄下試下(你也可以將output裡外掛程式目錄設定為ps的增效工具目錄),執行ps->檔案->自動->getter,然後你會發現桌面上多了個getter.log,該外掛程式的主要目的就是把你當前在ps裡開啟的檔案、圖層資訊及函式呼叫方法輸出到log裡去,所以當你不知道如何獲取某個資訊時,查詢getter.log裡對應的函式

5、listener外掛程式:該外掛程式的作用是監聽ps裡的大部分操作和事件的函式呼叫過程,並輸出到桌面上的listerner.log裡,比如你要複製剪下某一圖層,而且不知道如何用函式實現它的時候,先使用listener外掛程式,開啟ps對圖層進行一次複製剪下操作,然後開啟listener.log,**就在那

6、其它的一些外掛程式:可以照著它的英文名大概理解其意思

7、框架:

8、例子:

獲取檔案資訊:

sperr error = kspnoerror;

int numdocuments = 0;

......

auto_desc descdoc(false); // 這是乙個piactiondescriptor型別的智慧型指標,這樣就不用但心釋放問題

error = piugetinfobyindex(i, classdocument, 0, &descdoc, 0); // 獲取第i個檔案的desc,然後再從該desc裡獲取具體的圖層、顏色、alpha等資訊

......

double dvalue = 0;

descriptorunitid unitid = unitdistance;

error = spsactiondescriptor->getunitfloat(descdoc.get(), keywidth, &unitid, &dvalue); // 獲取檔案的寬度(即畫布大小),同理還有個keyheight

獲取圖層資訊:

descriptortypeid keylayersection = 0;

descriptortypeid keylayerstart = 0;

descriptortypeid keylayerend = 0;

descriptortypeid keybounds = 0;

piactiondescriptor desclayer = 0;

int32 numlayers = 0;

error = piugetinfobyid(docid, classdocument, keynumberoflayers, &numlayers, 0); // 根據docid(也可以用index)來獲取圖層數量

error = piugetinfobyindex(i, classlayer, 0, &desclayer, null); // 當前選中檔案(指獲取焦點)的第i個圖層資訊

spsactioncontrol->stringidtotypeid("layersection", &keylayersection);

spsactioncontrol->stringidtotypeid("layersectionend", &keylayerend); // 圖層分組的結束標記

spsactioncontrol->stringidtotypeid("layersectionstart", &keylayerstart); // 圖層分組的開始標記

spsactioncontrol->stringidtotypeid("bounds",&keybounds

error = spsactiondescriptor->getenumerated(desclayer, keylayersection, &rettypeid, &retenumid); // 獲取該圖層型別,可能是個分組資料夾

if (error || retenumid == keylayerend || retenumid == keylayerstart)getstring(desclayer, keyname, strname, 255); // 獲取圖層名

error = piugetsingleitemfromdescriptor(desclayer, keybounds, &desckey, &descclass); // 獲取圖層大小

double top = 0, left = 0, bottom = 0, right = 0;

// 獲取具體的圖層大小值

error = spsactiondescriptor->getfloat(desckey, keyleft, &left);

error = spsactiondescriptor->getfloat(desckey, keyright, &right);

error = spsactiondescriptor->getfloat(desckey, keytop, &top);

error = spsactiondescriptor->getfloat(desckey, keybottom, &bottom);

暫時先寫這麼多,還有事件呼叫,對圖層操作等等,其本上看listener.log和getter.log都能獲取源**,然後就是發揮想像力,自由組合,拼出想要的外掛程式功能了

Eclipse外掛程式開發之開篇簡介

一直想做點什麼事情,正好最近公司想作一些關於eclipse外掛程式開發的工作。領導們從日本帶回來了 eclipse 3.4 対応 eclipse 3.4 開発 徹底攻略 這本書。作為對本書的學習,我想把這本書的內容作乙個大概的翻譯。本書一共分三個部分對外掛程式開發進行了介紹,分別是 基礎知識篇 實踐...

ps生出ICO的外掛程式

最近工作中同事做了上位機軟體,桌面的icon用了公司的圖示,重要的是竟然是白色底的,進入介面後,上方資訊條也呼叫了乙個產品的圖示,也是白底的。想象一下藍色的條上乙個白色補丁上面有乙個小小的產品圖 雖然我的審美不是特好,可是我也看不下去了。在相關檔案下搜尋8bi,在這樣型別的檔案都在 注意事項 2。檔...

jsTree外掛程式簡介 一

在用jstree時可以使用幾種外掛程式來支援我們的行為,下面我簡要的介紹下各個外掛程式的使用。1 html data plugin。html data即我們要渲染的資料是用html格式來完成tree的展示。其中所要渲染的html資料可以來自直接的html文字,例如 function html dat...