diff --git a/Classic_BaseplateV2.rbxl b/Classic_BaseplateV2.rbxl new file mode 100644 index 0000000..02dddf1 Binary files /dev/null and b/Classic_BaseplateV2.rbxl differ diff --git a/RBLX-VideoStream.py b/RBLX-VideoStream.py new file mode 100644 index 0000000..0a3df27 --- /dev/null +++ b/RBLX-VideoStream.py @@ -0,0 +1,110 @@ +from PIL import Image +import pyautogui +from gc import disable +from flask import Flask +disable() + +def Screenshot(name,Resolution=100): ##Create a screenshot *.png + dir = "./Screencast" + name = str(name) + Photo = pyautogui.screenshot() + Size = Photo.size + Photo.save(dir+name+".png") + if not (Resolution > 14): + Photo = Image.open(dir+name+".png") + Size = Photo.size + Photo = Photo.resize((int(Size[0]/100*Resolution),int(Size[1]/100*Resolution))) + Photo.save(dir+name+".png") + Photo.close() + return dir+name+".png" + +def getImageInfo(Photo): #Get pixmap and Size + Photo = Image.open(Photo) + Map = Photo.load() + Size = Photo.size + Photo.close() + return Map,Size + +def DF(x, y): #Get distance between two numbers + if x == y: + return 0 + if x >= y: + return x - y + else: + return y - x + +def CS(c1,c2): #Can ignore that pixel + rd=DF(c1[0],c2[0]) + gd=DF(c1[1],c2[1]) + bd=DF(c1[2],c2[2]) + if rd>7: + return False + elif gd>7: + return False + elif bd>7: + return False + if rd+gd+bd > 10: + return False + return True + +def CTS(pixel,hex=False): + s="." + if hex == True: + if pixel: + return TH(pixel[0])+s+TH(pixel[1])+s+TH(pixel[2]) + else: + return None + else: + if pixel: + return str(pixel[0])+s+str(pixel[1])+s+str(pixel[2]) + else: + return None + +def TH(dn): + dn = str(hex(dn)) + r = dn[2:len(dn)] + return str(r) + +def imageToString(img): + disable() + map,res = getImageInfo(img) + CTP,d,lp,C = {},"",None,0 + print(str(res[0])+"x"+str(res[1])) + for xl in range(res[0]): + for yl in range(res[1]): + p = map[xl,yl] + if not(lp==None) and CS(lp,p): + C+=1 + else: + if not(C==0): + d+="*"+TH(C) + C=0 + ps = CTS(p,hex=False) + lp = p + if ps in CTP.keys(): + d+="/"+CTP[ps] + else: + CTP[ps] = TH(xl)+":"+TH(yl) + d+="/"+CTS(p,hex=True) + if not(C==0): + d+="*"+TH(C) + d = d[1:len(d)] + l = len(CTP) + CTP,lp,map,res = None,None,None,None + return d,l + +def runserver(): + app = Flask(__name__) + @app.route('/Screen', methods=['GET']) + def result(): + try: + s = Screenshot("screenshot",Resolution=14) + data,dl = imageToString(s) + print(f"{str(dl/1024)[0:5]} kb has been sent over the internet") + return data + except Exception as er: + print(er) + return "" + app.run(host='127.0.0.1',port=8080,debug=False) + +runserver()