Posts: 10
Threads: 6
Joined: Oct 2019
Oct-05-2019, 12:02 AM
(This post was last modified: Oct-05-2019, 09:14 AM by buran.)
i am trying to manipulate a known region found by using the locate on screen feature then changing these points to select a region beside the found image and take a screenshot of it. no clue how to go about doing this.
example:
foodi = pyautogui.locateOnScreen("foodi.png", confidence=0.7)
pyautogui.locateOnScreen(foodi)
this image location would be (1047, 45, 36, 35) except i want to select a region that is (1047+32,45+7,36+30,35-10) i tried simply doing
pyautogui.locateOnScreen(foodi(+32,+7,+30,-10))
returns 'tuple' object is not callable.
How would i go about manipulating the region of foodi as it changes and selecting the region beside it?
Thanks
Bmart
Posts: 10
Threads: 6
Joined: Oct 2019
Oct-05-2019, 02:15 AM
(This post was last modified: Oct-05-2019, 09:14 AM by buran.)
got it to modify the values of a found images region however it is still giving me an error this is what i have and the error.
print(foodi)
foodil = numpy.array(foodi)
print(foodil.astype(int)[[0]+32,[1]+7,[2]+30,[3]-10]) Error: Traceback (most recent call last):
(1047, 45, 36, 35)
File "C:/Users/brady/PycharmProjects/Bot/scratch.py", line 21, in <module>
(1079, 52, 66, 25)
print(foodil.astype(int)[[0]+32,[1]+7,[2]+30,[3]-10])
TypeError: can only concatenate list (not "int") to list
Process finished with exit code 1
Posts: 8,152
Threads: 160
Joined: Sep 2016
Oct-05-2019, 09:27 AM
(This post was last modified: Oct-05-2019, 09:27 AM by buran.)
try
left, top, width, height = pyautogui.locateOnScreen("foodi.png", confidence=0.7)
im = pyautogui.screenshot('my_screenshot.png', region=(left + 32, top + 7, width + 30, height - 10)) # don't pass filename if you don't want it saved to file
Posts: 10
Threads: 6
Joined: Oct 2019
Oct-05-2019, 06:20 PM
(This post was last modified: Oct-05-2019, 06:32 PM by Bmart6969.)
i figured out a way to do it however it is now saying too many indices for array for oil1[0] food1 = numpy.array(foodi)
food1[0] += 32
food1[1] += 7
food1[2] += 30
food1[3] -= 10
food = pyautogui.screenshot(region=(food1[0], food1[1], food1[2], food1[3]))
food.save(r'C:\Users\brady\PycharmProjects\Bot\foodc.png')
def get_text(image):
return pytesseract.image_to_string(image)
img = Image.open('foodc.png')
print(pytesseract.image_to_string(img))
time.sleep(1)
oil1 = numpy.array(oili)
oil1[0] += 32
oil1[1] += 7
oil1[2] += 30
oil1[3] -= 10
oil = pyautogui.screenshot(region=(oil1[0], oil1[1], oil1[2], oil1[3]))
oil.save(r'C:\Users\brady\PycharmProjects\Bot\oilc.png')
(Oct-05-2019, 06:20 PM)Bmart6969 Wrote: i figured out a way to do it however it is now saying too many indices for array for oil1[0] food1 = numpy.array(foodi)
food1[0] += 32
food1[1] += 7
food1[2] += 30
food1[3] -= 10
food = pyautogui.screenshot(region=(food1[0], food1[1], food1[2], food1[3]))
food.save(r'C:\Users\brady\PycharmProjects\Bot\foodc.png')
def get_text(image):
return pytesseract.image_to_string(image)
img = Image.open('foodc.png')
print(pytesseract.image_to_string(img))
time.sleep(1)
oil1 = numpy.array(oili)
oil1[0] += 32
oil1[1] += 7
oil1[2] += 30
oil1[3] -= 10
oil = pyautogui.screenshot(region=(oil1[0], oil1[1], oil1[2], oil1[3]))
oil.save(r'C:\Users\brady\PycharmProjects\Bot\oilc.png')
This code worked on my scratch file when I copied it over to my Main project it started giving me this error.
|