AnkuLua 發表於 Jan 10, 2016 7:43:01 GMT
您寫好第一個可以執行的腳本了,心中高興萬分
很高興的拿給好友用,希望得到崇拜的眼光
可是...(人生最怕的就是這個可是)
為何在您那支高檔手機上跑起來嚇嚇叫的腳本,在朋友那隻山寨機上就是非常慢,甚至當給您看
嗯!問題一定是出在朋友手機上面
難到一定要叫朋友換手機嗎?
當然不,藉由優化您的腳本,您可以重新拿回朋友心中神的地位
AnkuLua 運作原理:
AnkuLua 運作主要分三階段
圖形辨識運作又可以分為下列步驟
步驟一的縮放是決定要使用到多少記憶體的關鍵
如果您的手機寬度解析度到2560,但是您朋友的只到640
而不幸的是您的腳本CompareDimension 設成2560,那腳本在640手機上每次都要把圖放大成2560
那您朋友手機如果跑的順(甚至跑的動)就神奇了
步驟三的圖形辨識是最耗時間的,
但是我們可以藉由步驟一和二減少圖形辨識時間
優化圖形辨識:
設定適當CompareDimension
優化腳本執行速度最直接的方法就是設定適當CompareDimension
一般建議設成320或640的倍數
因為現在大部分機器寬度解析度都是320或640的倍數,設成這個數字能讓縮放後的圖依舊清晰,利於圖形辨識
我們一般是設成640 或 1280;320 可能太小,造成圖形辨識失敗
但是...
難到一定要找一支低解析度手機或將BS設成這麼低的解析度還發展腳本嗎?很難操作耶...
當然不,我們可以用軟體一次縮小我們在高解析度機器上截取的圖
PC上建議的是imagemagick 的convert
我們將需要的執行檔抽出,並寫了一個批次檔,包成了resize.zip
請將resize.zip 解壓到您的PC上放腳本的目錄
然後開Dos 指令視窗下執行resize.bat 指令,resize.bat 需要三個參數
第一個參數是縮放的百分比
第二個參數是原始圖檔目錄
第三個參數是目的圖檔目錄
舉個例子,下面命令就會將在image.2560裡的圖檔全部縮成一半(50%),然後放到image.1280
如有需要,您就可以用下列幾行來快速切換解析度,看看執行結果是否一致
注意: 只需更改CompareDimension,ScriptDimension 並不需要更改
善用區域(Region)比對
如果不使用區域,AnkuLua 會全螢幕做圖形辨識
因此,善用區域可以大幅減少辨識時間
注意: 區域對應的是ScriptDimension,下面例子裡lowerRight 對應的是螢幕右下四分之一
藉由適當的優化,您的腳本將能在低階機器上正常執行
如有任何問題,歡迎提出
[下一頁]: 編譯腳本
[上一頁]: 先進函數
[首頁]: AnkuLua介紹
很高興的拿給好友用,希望得到崇拜的眼光
可是...(人生最怕的就是這個可是)
為何在您那支高檔手機上跑起來嚇嚇叫的腳本,在朋友那隻山寨機上就是非常慢,甚至當給您看
嗯!問題一定是出在朋友手機上面
難到一定要叫朋友換手機嗎?
當然不,藉由優化您的腳本,您可以重新拿回朋友心中神的地位
AnkuLua 運作原理:
AnkuLua 運作主要分三階段
- 截圖
- 執行圖形辨識
- 點擊
圖形辨識運作又可以分為下列步驟
- 將截取到的圖依照Settings:setCompareDimension()裡的設定值縮放抓到的圖
- 如果有用setROI() 或 使用到Region 物件,則截取所需的部分;否則使用全圖
- 使用步驟二的圖做圖形辨識
步驟一的縮放是決定要使用到多少記憶體的關鍵
如果您的手機寬度解析度到2560,但是您朋友的只到640
而不幸的是您的腳本CompareDimension 設成2560,那腳本在640手機上每次都要把圖放大成2560
那您朋友手機如果跑的順(甚至跑的動)就神奇了
步驟三的圖形辨識是最耗時間的,
但是我們可以藉由步驟一和二減少圖形辨識時間
優化圖形辨識:
設定適當CompareDimension
優化腳本執行速度最直接的方法就是設定適當CompareDimension
一般建議設成320或640的倍數
因為現在大部分機器寬度解析度都是320或640的倍數,設成這個數字能讓縮放後的圖依舊清晰,利於圖形辨識
我們一般是設成640 或 1280;320 可能太小,造成圖形辨識失敗
但是...
難到一定要找一支低解析度手機或將BS設成這麼低的解析度還發展腳本嗎?很難操作耶...
當然不,我們可以用軟體一次縮小我們在高解析度機器上截取的圖
PC上建議的是imagemagick 的convert
我們將需要的執行檔抽出,並寫了一個批次檔,包成了resize.zip
請將resize.zip 解壓到您的PC上放腳本的目錄
然後開Dos 指令視窗下執行resize.bat 指令,resize.bat 需要三個參數
第一個參數是縮放的百分比
第二個參數是原始圖檔目錄
第三個參數是目的圖檔目錄
舉個例子,下面命令就會將在image.2560裡的圖檔全部縮成一半(50%),然後放到image.1280
resize.bat 50 image.2560 image.1280
如有需要,您就可以用下列幾行來快速切換解析度,看看執行結果是否一致
resolution = 1280 -- 只需更改這裡就好了
Settings:setCompareDimension(true, resolution)
localPath = scriptPath()
setImagePath(localPath.."image."..resolution.."/")
注意: 只需更改CompareDimension,ScriptDimension 並不需要更改
善用區域(Region)比對
如果不使用區域,AnkuLua 會全螢幕做圖形辨識
因此,善用區域可以大幅減少辨識時間
注意: 區域對應的是ScriptDimension,下面例子裡lowerRight 對應的是螢幕右下四分之一
Settings:setCompareDimension(true, 1280)
Settings:setScriptDimension(true, 2560)
lowerRight = Region(1280, 800, 1280, 800) -- (x+w) 或 (y+h) 大於螢幕實際解析度沒關係,AnkuLua 會自動取螢幕解析度最大值
藉由適當的優化,您的腳本將能在低階機器上正常執行
如有任何問題,歡迎提出
[下一頁]: 編譯腳本
[上一頁]: 先進函數
[首頁]: AnkuLua介紹