sikuli-driver team mailing list archive
-
sikuli-driver team
-
Mailing list archive
-
Message #01667
Re: [Question #148363]: unfocus code snipet
Question #148363 on Sikuli changed:
https://answers.launchpad.net/sikuli/+question/148363
Status: Open => Answered
RaiMan proposed the following answer:
For this solution a class is not really needed (only if you want to
extend it further with more behavior).
so a function would be sufficient:
def unfocus(obj, sim=0.7, reg=SCREEN):
to = Location(0,0)
if obj.__class__.__name__ == "Pattern":
to = obj.getTargetOffset()
for i in range(4):
if reg.exists(Pattern(obj).similar(sim).targetOffset(to.x, to.y),0):
return reg.getLastMatch()
sim -= 0.1
return false
this solution:
- takes any Region-like object, if omitted searches in SCREEN
- the search object can either be an image or a Pattern
- does not wait 3 seconds with every search (back latest after 3-4 seconds instead of 12 -15)
- does not search again if found
comment:
the first 3 lines in the def() are only necessary, because Pattern(some_other_pattern) does not preserve a targetOffset.
one more thing (for the developers ;-)
Having a class Pattern, that preserves the targetOffset, the def() would be:
def unfocus(obj, sim=0.7, reg=SCREEN):
for i in range(4):
if reg.exists(Pattern(obj).similar(sim)):
return reg.getLastMatch()
sim -= 0.1
return false
class Pattern is really poor currently:
- should preserve the attributes when based on another Pattern
- should accept a Location object as targetOffset
--
You received this question notification because you are a member of
Sikuli Drivers, which is an answer contact for Sikuli.