currently all this project does is connects to my server and if my server is online then it will return your profile picture by default. (all images lowered to 40x40 resolution) if you re-request data you can get someone else's profile picture and actually here is the scratch server code import scratchattach as sa from PIL import Image, ImageOps import warnings from urllib.request import urlopen import requests img = Image.open('birb.png').convert('RGB') width, height = img.size pixels = img.load() data = "" warnings.filterwarnings('ignore', category=sa.LoginDataWarning) for y in range(height): for x in range(width): r, g, b = pixels[x, y] hex_color = f'#{r:02x}{g:02x}{b:02x}' data = data + " " + hex_color print("loaded image data") session = sa.login("your username here", "insert password here") cloud = session.connect_cloud("scratch project ID here") client = cloud.requests(no_packet_loss=True) thig = Image.open("birb.png") @client.request def pfpImage(argument1): global data data = "" user = sa.get_user(argument1) imgurl = user.icon_url pfp = Image.open(requests.get(imgurl, stream=True).raw).convert('RGB') pfp = ImageOps.fit(pfp, (40, 40), Image.LANCZOS) pfp.thumbnail((40, 40)) pfppixels = pfp.load() width, height = pfp.size for y in range(height): for x in range(width): r, g, b = pfppixels[x, y] hex_color = f'#{r:02x}{g:02x}{b:02x}' data = data + " " + hex_color print(argument1 + " requested the image data") return data @client.event def on_ready(): print("Request handler is running") client.start(thread=False) also if you use turbowarp, that server also works
credit to @TimMcCool for scratchattach now I have made it so you will not get packet loss and will always recieve the whole image if the server is up (nevermind it can get corrupted...) I can't give you the backend code fully because that requires authentication and also my password but here's the turbowarp server's code import scratchattach as sa from PIL import Image, ImageOps import warnings from urllib.request import urlopen import requests img = Image.open('birb.png').convert('RGB') width, height = img.size pixels = img.load() data = "" warnings.filterwarnings('ignore', category=sa.LoginDataWarning) for y in range(height): for x in range(width): r, g, b = pixels[x, y] hex_color = f'#{r:02x}{g:02x}{b:02x}' data = data + " " + hex_color print("loaded image data") cloud = sa.get_tw_cloud("1198508475") client = cloud.requests(no_packet_loss=True) thig = Image.open("birb.png") .request def pfpImage(argument1): global data data = "" user = sa.get_user(argument1) imgurl = user.icon_url pfp = Image.open(requests.get(imgurl, stream=True).raw).convert('RGB') pfp = ImageOps.fit(pfp, (40, 40), Image.LANCZOS) pfp.thumbnail((40, 40)) pfppixels = pfp.load() width, height = pfp.size for y in range(height): for x in range(width): r, g, b = pfppixels[x, y] hex_color = f'#{r:02x}{g:02x}{b:02x}' data = data + " " + hex_color print(argument1 + " requested the image data") return data .event def on_ready(): print("Request handler is running") client.start(thread=False) # # #