Files
minecraft/imagestuff.py
2023-11-27 20:16:34 +01:00

53 lines
14 KiB
Python

#get image stuff #
#import base64
# Replace 'path_to_image.png' with the path to your image file
#with open('/home/alex/minecraft/minecraft/autologin_screenshots/join_button.png', 'rb') as image_file:
# encoded_string = base64.b64encode(image_file.read())
#Now, you can print this string or write it to a text file
#print(encoded_string)
import base64
from PIL import Image
from io import BytesIO
import pyautogui
import cv2
import numpy as np
# Replace the content of encoded_image with your actual base64 string.
#back to server list
#encoded_image = (b'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')
#join button
encoded_image = (b'iVBORw0KGgoAAAANSUhEUgAAASkAAAA4CAYAAAChZA4IAAAAwnpUWHRSYXcgcHJvZmlsZSB0eXBlIGV4aWYAAHjabVBBDgMhCLz7ij5BGFbxOba7TfqDPr+4YLK2nYQBIYxAOt6vZ7oNMEmSrWpppWSDNGncLdDs6CdTlpNPcIuI1nzCbGJLwTz8qcU9zXw0TE/dou0ipI8o3NdCk9DXLyF2hzHRiPcQaiEE9gKFQPe1cmlaryvcj7xC3dIg0XXsn3e16+2b/QPmA4RsDIgPgGFI6FYg4wxlT3cIijGjhpgd5N+dJtIH9HBZIU+CbosAAAGEaUNDUElDQyBwcm9maWxlAAB4nH2RPUjDQBzFX1OlRSsO7SDikKE62UWlONYqFKFCqBVadTC59AuatCQpLo6Ca8HBj8Wqg4uzrg6ugiD4AeLq4qToIiX+Lym0iPHguB/v7j3u3gFCq8o0sy8BaLplZFJJMZdfFQOvGEQQYcQQl5lZn5OkNDzH1z18fL2L8Szvc3+OIbVgMsAnEidY3bCIN4jjm1ad8z5xhJVllficeNKgCxI/cl1x+Y1zyWGBZ0aMbGaeOEIslnpY6WFWNjTiGeKoqumUL+RcVjlvcdaqDda5J39hqKCvLHOd5hhSWMQSJIhQ0EAFVVjUVwU6KSYytJ/08I86folcCrkqYORYQA0aZMcP/ge/uzWL01NuUigJ9L/Y9sc4ENgF2k3b/j627fYJ4H8GrvSuv9YCZj9Jb3a16BEwvA1cXHc1ZQ+43AFGnuqyITuSn6ZQLALvZ/RNeSB8Cwysub119nH6AGSpq/QNcHAITJQoe93j3cHe3v490+nvB/E3ctlpr7KMAAANeGlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNC40LjAtRXhpdjIiPgogPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iCiAgICB4bWxuczpzdEV2dD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlRXZlbnQjIgogICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICAgeG1sbnM6R0lNUD0iaHR0cDovL3d3dy5naW1wLm9yZy94bXAvIgogICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iCiAgIHhtcE1NOkRvY3VtZW50SUQ9ImdpbXA6ZG9jaWQ6Z2ltcDpkMjJlN2QyMi00NGVjLTRiMDktOTU2Zi0yMDYwZWIxMGRkOTEiCiAgIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NjgyZGM2ODUtZmM1Zi00MGY0LTljNTQtNmY2ZTk0N2MwZGVlIgogICB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9InhtcC5kaWQ6ODhhMjYxMTMtZGE2NC00MGM3LTk1NmYtNDYxYzkyMTQyNjI3IgogICBkYzpGb3JtYXQ9ImltYWdlL3BuZyIKICAgR0lNUDpBUEk9IjIuMCIKICAgR0lNUDpQbGF0Zm9ybT0iTGludXgiCiAgIEdJTVA6VGltZVN0YW1wPSIxNjk5NDcyNzg5MDU1MzU1IgogICBHSU1QOlZlcnNpb249IjIuMTAuMzQiCiAgIHRpZmY6T3JpZW50YXRpb249IjEiCiAgIHhtcDpDcmVhdG9yVG9vbD0iR0lNUCAyLjEwIgogICB4bXA6TWV0YWRhdGFEYXRlPSIyMDIzOjExOjA4VDIwOjQ2OjI3KzAxOjAwIgogICB4bXA6TW9kaWZ5RGF0ZT0iMjAyMzoxMTowOFQyMDo0NjoyNyswMTowMCI+CiAgIDx4bXBNTTpIaXN0b3J5PgogICAgPHJkZjpTZXE+CiAgICAgPHJkZjpsaQogICAgICBzdEV2dDphY3Rpb249InNhdmVkIgogICAgICBzdEV2dDpjaGFuZ2VkPSIvIgogICAgICBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOjkyZmU1YjYzLTRlOTgtNDFmMi1iNThiLTlmNTc5OGU3OTYyNyIKICAgICAgc3RFdnQ6c29mdHdhcmVBZ2VudD0iR2ltcCAyLjEwIChMaW51eCkiCiAgICAgIHN0RXZ0OndoZW49IjIwMjMtMTEtMDhUMjA6NDY6MjkrMDE6MDAiLz4KICAgIDwvcmRmOlNlcT4KICAgPC94bXBNTTpIaXN0b3J5PgogIDwvcmRmOkRlc2NyaXB0aW9uPgogPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgIAo8P3hwYWNrZXQgZW5kPSJ3Ij8+gMYcMQAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB+cLCBMuHQOQ4LgAAAk+SURBVHja7Z3JihRLFIa7tZ3fw42zC8GdDyROIOITiBtHfIl6CjciIjiibyCKS+1uZ/vu8n4X8iPPqUrlLv5vFRaZUSeGas8fJ+LE+mKx2Flbkl+/fo1+vnv37rW5WV9fH8o7OzuzvGuf//79e/J5smvXrtHPWY89s8rzFaxOfl5py5+gYk9l7nXHpVJnZQ6vYn93/tA2zkm+y7L1T6VPKn1b6Ydu/z969Ggo371799961kII4X9M/kiFEP7XbJi7tQomnfbs2TOUf/z4MYs87LrcJlH5+cbGxqQk5DOk2y7WQ/tZj7nNJk/MRaf9fJffS3vmkqjWh2bPwYMHh/LPnz8nx5f1036+a99r89OWFMxmG+tK/1QkOdvC72J7aT/5/v37pJRju2wu8V2WabP1g7Xr27dvQ/njx4/xpEIIkXshhPDn5J65siZtzGU1ucRnzC00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')
# Decode the image
decoded_image = base64.b64decode(encoded_image)
image_data = BytesIO(decoded_image)
image = Image.open(image_data)
image.save('/tmp/button_image.png')
# Now, when you want to find and click the button, load the image as before:
button_image = cv2.imread('/tmp/button_image.png', 0)
w, h = button_image.shape[::-1]
# Take a screenshot using pyautogui
screenshot = pyautogui.screenshot()
screenshot = np.array(screenshot)
screenshot_gray = cv2.cvtColor(screenshot, cv2.COLOR_BGR2GRAY)
# Template matching
res = cv2.matchTemplate(screenshot_gray, button_image, cv2.TM_CCOEFF_NORMED)
min_val, max_val, min_loc, max_loc = cv2.minMaxLoc(res)
# Click if a good match is found
if max_val > 0.8: # Adjust this threshold as needed
click_x, click_y = max_loc[0] + w // 2, max_loc[1] + h // 2
pyautogui.click(click_x, click_y)
print("Clicked on the button.")
else:
print("No suitable match found.")