pyautogui screenshotting region relative to image found on screen - Printable Version +- Python Forum (https://python-forum.io) +-- Forum: Python Coding (https://python-forum.io/forum-7.html) +--- Forum: General Coding Help (https://python-forum.io/forum-8.html) +--- Thread: pyautogui screenshotting region relative to image found on screen (/thread-21574.html) |
pyautogui screenshotting region relative to image found on screen - Bmart6969 - Oct-05-2019 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 RE: pyautogui screenshotting region relative to image found on screen - Bmart6969 - Oct-05-2019 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])
RE: pyautogui screenshotting region relative to image found on screen - buran - Oct-05-2019 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 RE: pyautogui screenshotting region relative to image found on screen - Bmart6969 - Oct-05-2019 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 foroil1[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. |