Sikuli: How to get program to capture part of the screen and store as image
所以我想捕获一个图像,图像s,它总是在同一个区域。 它然后消失,可能会或可能不会重新出现在不同的区域。
我希望程序在第一次出现时捕获,如果它重新出现在其他区域,则单击一组按钮,否则转到另一个功能。
另一件事是每次调用函数时图像的更改,但它保持在同一位置。
以下是我的代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | def playLoop(): s = capture(firstRegion) warnBox = exists("1443867801301.png") if not warnBox: if exists("1443867813008.png"): click(x) playLoop() else: if secondRegion.exists(Pattern(s).similar(0.8)): wait(3) click(x) playLoop() else: loopLoop() else: doubleClick(y) if secondRegion.exists(Pattern(s).similar(0.8)): wait(3) click(x) playLoop() else: loopLoop() |
我没有错误,但它似乎不起作用。 有任何想法吗?
s = Screen.capture(firstRegion)
为了这:
s =捕获(firstRegion)
f = find(s)
x = getX()
y = getY()
最后,如果你想获得次数,你可以将一个变量传递给函数:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | def playLoop(times,x,y): s = capture(firstRegion) t = find(s) if times==0: warnBox = exists("1443867801301.png") if not warnBox: if exists("1443867813008.png"): click(x) times+=1 playLoop(times,t.getX(),t.getY()) if times != 0: warnBox = exists("1443867801301.png") if not warnBox: if t.getX() != x or t.getY() != y: #different location doSomething() else: otherFunction() #same location times+=1 |
PD:Sry,如果我的英语不好:)
要查看region2中是否存在region1,您可以使用