請先參閱:Imagepro plus操作5 – 提高測量效率的必須技術-宏操作
上一篇只是敘述了最簡單的宏操作方法。現在我們可以使用一點稍復雜的技巧來提高效率。這也是我剛學會的幾個小招術。使用稍復雜一點的宏,需要你了解 一些編程語言的常識。如果一點也不懂編程語言,理解起來會很困難。但也別太緊張,不會寫代碼不要緊,只要有一點基本的知識的夠用了。
還是以上一篇的例子來說吧。上一篇我編制了一個宏操作程序,然后按一個快捷鍵就能把一張照片的黑白反轉過來了。如果要處理幾百張照片,還是得按幾百次鍵的。
現在我們試着制作一個宏操作,運行它就能把文件夾里所有的文件全給處理了。
打開IPP后加載上默認的宏操作腳本default.ipm。如果你從未用過宏,打開IPP的時候這個默認腳本就已經加載上了。如果要重新加載這個 默認腳本,就點macro 窗口中的 change macro按紐,在彈出的文件選擇窗口中選擇default.ipm打開就行了。
再點擊edit macro,就可以看到宏操作的代碼了。現在我沒錄制宏,所以里面是空的。
下面我錄制了一個宏操作,名稱是ccc。動作是:
invert contrast
apply contrast
save file
close file
就是把一張打開的圖片黑白翻轉后保存,然后關閉這張圖片。
錄制好這個宏之后,再次edit macro,看看錄制的代碼是什么樣子的:
Sub ccc()
‘D
ret = IpLutSetAttr(LUT_CONTRAST, -1)
ret = IpLutApply()
ret = IpWsSave()
ret = IpDocClose()
ret = IpIOvrShow(0)
ret = IpAnShow(0)
ret = IpDcnvShow(0)
End Sub
所謂編制程序,就是用手寫下這些代碼。
所謂錄制宏操作,就是IPP根據你的操作內容,記錄下來,自動生成一組完成操作的代碼。所以有了宏操作這個功能,不會寫代碼也能寫代碼了。
到現在為止,還不是本篇的主題。下面是想法把這組代碼能應用到多張照片上。
對一組照片進行處理的程序代碼是相當復雜的,咱們自己編制不了。不過,IPP提供了現成的代碼可以利用的。這就是batch_process.ipm。
還是點macro — change macro,在打開的文件選擇窗口中,選擇batch_process.ipm打開。
再點edit macro彈出程序編輯窗口,這回代碼就太多了。
看不懂不要緊。這個宏的功能就是一個一個地打開文件,處理一下,再返回。只要我們把它處理圖片的代碼換成我們自己處理圖片的代碼,它就能用我們自己的操作批處理我們自己的圖片了。
在程序的第119行有這么一段代碼:(找119行的方法是:把光標點到一個地方,在窗口右下角看這個位置的LN后面的數字就是行號,col后面的數字 是列)
’ Call processing routine here ***
‘ The document ID and file name are sent here
’ in case the processing routine needs them.
DoStuff docID, gDirStart + fName
‘ Close the initial image
這幾句話前面有“ ‘ ”的綠色字母都是說明文字,只有一句話是有用的,就是“dostuff docID,gdirstart+fname“
這個操作是原來程序的操作,把它換成我們自己的操作就行啦。
上去看看剛才我們自己錄制的代碼,從’D后面開始到end sub之間的代碼替換掉上面這句話就行啦!就是這樣子:
’ Call processing routine here ***
‘ The document ID and file name are sent here
’ in case the processing routine needs them.
ret = IpLutSetAttr(LUT_CONTRAST, -1)
ret = IpLutApply()
ret = IpWsSave()
ret = IpDocClose()
ret = IpIOvrShow(0)
ret = IpAnShow(0)
ret = IpDcnvShow(0)
‘ Close the initial image
然后保存。就可以用了。
點macro菜單,最下面會有三個子菜單
分別是ProcessDirectory,ProcessOpenDocs,ProcessSubDir。我剛才改的是第一個。處理文件夾。
點processDirectory,先會彈出文件選擇窗口,選擇待處理圖片的文件夾中,任找一個文件點一下。OK之后就沒你事了。程序會把這個文件夾里所有的圖片文件都給來個黑白顛倒。其他的非圖片文件則不會被改動。
還可以使用processopendocs,這是批處理打開的圖片,只要按照上述方法改動191行的代碼就行了。