From 8fa05866489eff01f2d283de6c203529c8188482 Mon Sep 17 00:00:00 2001 From: sigonasr2 Date: Mon, 30 May 2022 14:19:24 -0500 Subject: [PATCH] Break up display into pieces for fast updates Co-authored-by: sigonasr2 --- bin/SigShare.jar | Bin 11717 -> 13503 bytes bin/screenshot.jpg | Bin 0 -> 108538 bytes bin/screenshot_out.jpg | 0 bin/screenshot_part.jpg | Bin 0 -> 1885 bytes src/sig/SigShare.java | 263 ++++++++++++++++++++++++++++++---------- 5 files changed, 200 insertions(+), 63 deletions(-) create mode 100644 bin/screenshot.jpg create mode 100644 bin/screenshot_out.jpg create mode 100644 bin/screenshot_part.jpg diff --git a/bin/SigShare.jar b/bin/SigShare.jar index f07544d9261edb255d2831da4869bcc190eb26b9..29dfa90acea3142275e787c8a34757c54aad11d4 100644 GIT binary patch delta 5963 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 xhGCwVY1>E$27 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 Z@%|P7@TdFVy`uc7$q+sQF~L7Y{{cKk#L55w diff --git a/bin/screenshot.jpg b/bin/screenshot.jpg new file mode 100644 index 0000000000000000000000000000000000000000..e8b8116c8db141cd8d0b3a5e7959582218af2879 GIT binary patch literal 108538 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

1z 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 literal 0 HcmV?d00001 diff --git a/bin/screenshot_out.jpg b/bin/screenshot_out.jpg new file mode 100644 index 0000000..e69de29 diff --git a/bin/screenshot_part.jpg b/bin/screenshot_part.jpg new file mode 100644 index 0000000000000000000000000000000000000000..5af4793f305271126ebef554a70dff822b157a20 GIT binary patch literal 1885 zcmbW!dpy+X9tZH>T+Btp$V`l}F5@!fh?!Ag#wCVK2gewfExOQ_tYoOzv1wO=2u&@0ZLM|dv<&q&=;#|`O};S3;&7%G z_SUB6c6c0)u+_%S!I4ZRn^-$jw-G7!Br@?+6A%)K)LN%ypsj5{G{cz@|L3Th0Tcr8 z1X3U%a{!D2K~Nx7D`292rv~VAfWHC)L!cTkI0C7;PF-+M7XX7G5HJ*?p#g=et52%W z0VqmC&&<&iwjpRg+?=IPd0w8~~)a#$H|8SwyE-(}dfxJlQapb;s3D#&DagDBqb{PJA}SDD|0rs$vJ*6E7KPRptzbVO*$QpZPYnwWLM~fM=|q>7A&UwCBetPW7$ZPRZ!O! zNIAgx=I{c`I-k-xIIB#`Jl;juMu=(lHY^WK!*eqxPem6(!x#Y`&Q2JcW`^<51B;n< ztgH%X@^kXHAIrax9h0#Gb9h8q81-+&BZ3CkBc~Ysi9Z7cw(-Cst z$0I605wiPy5wS;4=R<5<#8>_4ip3-8o-I?g`L$5T2JI@=@3yDyBW}9|1c18C?=0Hg z7e7hsul$kR==ypH=$df*#AZ(~(}&Jl;}Y(2x;95?JDd zalF9potqAe(r>5j5dO%B4T)y-#Kzo3coGd^!FYH2rQf1R2Xz6w#b%G#hFVGnpSbr=cPSzrHM7r%6h`l|4=4_&J2wwJ;Cxx!D{j*TFYvr+}Tm z>C1R@0gUzBx*T$3{k_In^vz?VM!4}hC%i9uz+2~D!> zXFQ3e@5pPJe8wb2xXQvwpc@?i6*gv>xw~#I_^inYI$%QgflKE4@$Nn|svo`}9$0_E zf4bWV&3~9-x7T$Sme|5Nr7c22C{v!V0F-Af^@ z1Kx+DDtGyu9bjJPeHik9Qx4rYB!2hN0(&EL;OZ9T3(zDi@@;bk18yjdBDJ{);-~?~ zlPKQ9$#JeHSrTe!nPo5d2Sw#+E9_>6vFj$O!+h2bW48|c?ApoY+Q}N1DDL+U`x`MR zIZw`o5B!LrV+@*`DZPo#B9i~_(02sJiADdFQaqY%<2j0FT^ro`eC3t+)wL`+Qz@@@ ztWL4?>w-hE8M&NXt90v&oxY&&+AS`m{j36>iaEJ< z1|Gr9Vp=tSw17~PGdx$e+T=Fzt!$tEOdzI81>9ZilZYO?T|1V_J}K=&l^dCAT>j3- zC$-P7)IU1ub=zB+7o_@VJAg}cO>;7=y54`vWzUEpfwA4R^G0!ZW?HmU1a`2h&ywFS zC!)_hVCOj_28|kyLDPhypOyT=BZ&H%;nagZ|6Ewy$1nW27&vh8XkcAZ>0oQ8p_umh z;`z$UAND>~Z`X&>qG^%XxXFgJgIAY{rY2}o?0CJc+_00JZWfW~ z$fLzb$FBEh*<3>L6#}KOc$(b!L%x*`J7JoJp1_;arWu-qBBJ*c{Ut#t62+zLT=P1& z*7TG6``}Ok$6fJt^^!mlBNWG{3mETON9Xf5ud)Rbo6cP<*AEuYY}`3!cZZ%L%#h?4 u=n>rFaH?4MvXu9k{lFb{JdkLd literal 0 HcmV?d00001 diff --git a/src/sig/SigShare.java b/src/sig/SigShare.java index d4f6279..b232e00 100644 --- a/src/sig/SigShare.java +++ b/src/sig/SigShare.java @@ -1,20 +1,18 @@ package sig; -import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.BufferedReader; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.File; import java.io.FileInputStream; +import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStreamReader; -import java.io.OutputStream; -import java.io.PrintWriter; import java.net.ServerSocket; import java.net.Socket; -import java.util.Arrays; +import java.util.HashMap; import java.util.Iterator; import java.util.regex.Pattern; @@ -24,7 +22,6 @@ import javax.imageio.ImageWriteParam; import javax.imageio.ImageWriter; import javax.imageio.stream.ImageOutputStream; import javax.swing.JFrame; -import java.awt.Toolkit; import sig.engine.Panel; import java.awt.AWTException; @@ -38,8 +35,18 @@ public class SigShare { static Robot r; public static final String PROGRAM_NAME="SigShare"; public static double SCREEN_MULT=2; - public static int SCREEN_WIDTH=(int)(GraphicsEnvironment.getLocalGraphicsEnvironment().getMaximumWindowBounds().getWidth()/SCREEN_MULT); - public static int SCREEN_HEIGHT=(int)(GraphicsEnvironment.getLocalGraphicsEnvironment().getMaximumWindowBounds().getHeight()/SCREEN_MULT); + public static int REGION_X_COUNT = 8; + public static int REGION_Y_COUNT = 8; + public static int SCREEN_WIDTH=((int)(GraphicsEnvironment.getLocalGraphicsEnvironment().getMaximumWindowBounds().getWidth()/SCREEN_MULT)/REGION_X_COUNT)*REGION_X_COUNT; + public static int SCREEN_HEIGHT=((int)(GraphicsEnvironment.getLocalGraphicsEnvironment().getMaximumWindowBounds().getHeight()/SCREEN_MULT)/REGION_Y_COUNT)*REGION_Y_COUNT; + public static int[] img = new int[SCREEN_WIDTH*SCREEN_HEIGHT]; //Store the number of changes in the last 8 bits of ints. Use 2 ints per section, meaning an 8x8 section uses 128 integers to store 64 values. + public static int CHANGE_THRESHOLD = 1000; + public static char[] changes = new char[REGION_X_COUNT*REGION_Y_COUNT]; + public static int REGION_WIDTH = SCREEN_WIDTH/REGION_X_COUNT; + public static int REGION_HEIGHT = SCREEN_HEIGHT/REGION_Y_COUNT; + public static long LAST_CLEANUP = System.currentTimeMillis(); + public static int CLEANUP_FREQUENCY = 2000; + public static HashMap REGION_CHECK = new HashMap<>(); public static void main(String[] args) throws AWTException { r = new Robot(); if (args.length==2&&args[1].equalsIgnoreCase("server")) { @@ -68,21 +75,73 @@ public class SigShare { } }*/ int frame=0; + CaptureScreen(SCREEN_WIDTH,SCREEN_HEIGHT); + FileInputStream stream = new FileInputStream(new File("screenshot.jpg")); + while (stream.available()>0) { + clientOutput.writeByte(stream.read()); + } + stream.close(); + BufferedImage image = ImageIO.read(new File("screenshot.jpg")); + for (int y=0;y0) { - clientOutput.writeByte(stream.read()); - } - stream.close(); - for (int i=0;i<10;i++) { - clientOutput.writeChar('-'); + boolean fullCleanup=false; + BufferedImage newCapture = CaptureScreen(SCREEN_WIDTH,SCREEN_HEIGHT); + REGION_CHECK.clear(); + for (int y=0;y=5000) { + if (!REGION_CHECK.containsKey((char)(gridY*REGION_X_COUNT+gridX))) { + performSubimageUpdate(in, clientOutput, newCapture, gridX, gridY); + } + fullCleanup=true; + } else + if (currentPixel!=newPixel) { + img[y*newCapture.getWidth()+x]=newPixel; + if (gridY*REGION_X_COUNT+gridX>=changes.length) { + System.out.println(gridY+"/"+REGION_X_COUNT+"/"+gridX+" "+x+","+y); + } + //System.out.println("Changes ("+gridX+","+gridY+"): "+changes[gridY*REGION_X_COUNT+gridX]); + if (!REGION_CHECK.containsKey((char)(gridY*REGION_X_COUNT+gridX))) { + changes[gridY*REGION_X_COUNT+gridX]+=2; + if (gridY>0) { + changes[(gridY-1)*REGION_X_COUNT+gridX]+=1; + } + if (gridY0) { + changes[(gridY)*REGION_X_COUNT+(gridX-1)]+=1; + } + if (gridX=CHANGE_THRESHOLD) { + performSubimageUpdate(in, clientOutput, newCapture, gridX, gridY); + } + } + } + } } - System.out.println("Frame "+frame+++" processed. Waiting on client."); - while (!in.ready()) { + if (fullCleanup) { + LAST_CLEANUP=System.currentTimeMillis(); } - System.out.println("Client no longer idle."); - in.readLine(); } } catch (IOException e) { e.printStackTrace(); @@ -109,56 +168,106 @@ public class SigShare { String line; if (in.available()>0) { line=in.readLine(); - System.out.println(line); - if (line.contains("DESKTOP")) { - String[] split = line.split(Pattern.quote(" ")); - - SCREEN_WIDTH=Integer.parseInt(split[1]); - SCREEN_HEIGHT=Integer.parseInt(split[2]); - p.init(SCREEN_WIDTH,SCREEN_HEIGHT); - - f.add(p); - f.setSize(SCREEN_WIDTH,SCREEN_HEIGHT); - f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); - f.setVisible(true); + System.out.println(line); + if (line.contains("DESKTOP")) { + String[] split = line.split(Pattern.quote(" ")); + + SCREEN_WIDTH=Integer.parseInt(split[1]); + SCREEN_HEIGHT=Integer.parseInt(split[2]); + p.init(SCREEN_WIDTH,SCREEN_HEIGHT); + + f.add(p); + f.setSize(SCREEN_WIDTH,SCREEN_HEIGHT); + f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + f.setVisible(true); - int frame=0; - int dashCount=0; - BufferedOutputStream stream = null; - while (true) - { - while (in.available()>0) { - if (stream==null) { - //System.out.println("Stream opened."); - stream=new BufferedOutputStream(new FileOutputStream(new File("screenshot_out.jpg"),true)); + int frame=0; + int dashCount=0; + BufferedOutputStream stream = null; + while (true) { + while (in.available()>0) { + if (stream==null) { + //System.out.println("Stream opened."); + stream=new BufferedOutputStream(new FileOutputStream(new File("screenshot_out.jpg"),true)); + } + int val = in.read(); + stream.write(val); + //System.out.print((char)val); + if (val=='-') { + dashCount++; + } else + if (val!=0) { + dashCount=0; + } } - int val = in.read(); - stream.write(val); - if (val=='-') { - dashCount++; - } else - if (val!=0) { + if (dashCount>=10) { + stream.close(); + stream=null; dashCount=0; + System.out.println("Frame "+frame+++" processed."); + BufferedImage i = ImageIO.read(new File("screenshot_out.jpg")); + if (i!=null) { + for (int y=0;y=10) { - stream.close(); - stream=null; - dashCount=0; - System.out.println("Frame "+frame+++" processed."); - BufferedImage i = ImageIO.read(new File("screenshot_out.jpg")); - if (i!=null) { - for (int y=0;y0) { + if (regionInfo==-1) { + regionInfo=in.read(); + } else { + while (in.available()>0) { + if (stream==null) { + //System.out.println("Stream opened."); + stream=new BufferedOutputStream(new FileOutputStream(new File("screenshot_out.jpg"),true)); + } + int val = in.read(); + stream.write(val); + if (val=='-') { + dashCount++; + } else + if (val!=0) { + dashCount=0; + } + } + if (dashCount>=10) { + stream.close(); + stream=null; + dashCount=0; + System.out.println("Frame "+frame+++" processed."); + BufferedImage i = ImageIO.read(new File("screenshot_out.jpg")); + if (i!=null) { + int yy=0; + for (int y=(regionInfo/REGION_X_COUNT)*REGION_HEIGHT;y<(regionInfo/REGION_X_COUNT)*REGION_HEIGHT+REGION_HEIGHT;y++) { + int xx=0; + for (int x=(regionInfo%REGION_X_COUNT)*REGION_WIDTH;x<(regionInfo%REGION_X_COUNT)*REGION_WIDTH+REGION_WIDTH;x++) { + Panel.pixel[y*SCREEN_WIDTH+x]=i.getRGB(xx,yy); + xx++; + } + yy++; + } + } + System.out.println("Region ("+(regionInfo%REGION_X_COUNT)+","+(regionInfo/REGION_X_COUNT)+") updated."); + System.out.println("Waiting for region data..."); + regionInfo=-1; + out.writeChars("Done\r\n"); + stream=new BufferedOutputStream(new FileOutputStream(new File("screenshot_out.jpg"),false)); } } } - out.writeChars("Done\r\n"); - stream=new BufferedOutputStream(new FileOutputStream(new File("screenshot_out.jpg"),false)); } } - } } } } catch (IOException e) { @@ -169,9 +278,32 @@ public class SigShare { return; } } - private static void CaptureScreen(int w, int h) throws IOException { + private static void performSubimageUpdate(BufferedReader in, DataOutputStream clientOutput, BufferedImage newCapture, int gridX, + int gridY) throws IOException, FileNotFoundException { + FileInputStream stream; + changes[gridY*REGION_X_COUNT+gridX]=0; + GetSubimage(newCapture, gridX*REGION_WIDTH, gridY*REGION_HEIGHT, REGION_WIDTH, REGION_HEIGHT); + System.out.println("Preparing to send region("+gridX+","+gridY+")."); + stream = new FileInputStream(new File("screenshot_part.jpg")); + clientOutput.writeByte(gridY*REGION_X_COUNT+gridX); + while (stream.available()>0) { + clientOutput.writeByte(stream.read()); + } + stream.close(); + for (int i=0;i<10;i++) { + clientOutput.writeChar('-'); + } + System.out.println("Region sent, waiting for reply."); + while (!in.ready()); + in.readLine(); + System.out.println("Client no longer idle."); + REGION_CHECK.put((char)(gridY*REGION_X_COUNT+gridX),true); + /*x=(x/REGION_WIDTH)*REGION_WIDTH+REGION_WIDTH; + y=(y/REGION_HEIGHT)*REGION_HEIGHT+REGION_HEIGHT;*/ + } + private static BufferedImage CaptureScreen(int w, int h) throws IOException { //BufferedImage screenshot = toBufferedImage(r.createScreenCapture(GraphicsEnvironment.getLocalGraphicsEnvironment().getMaximumWindowBounds()).getScaledInstance(w, h, Image.SCALE_DEFAULT)); - + BufferedImage screenshot; ImageOutputStream ios = ImageIO.createImageOutputStream(new File("screenshot.jpg")); Iterator iter = ImageIO.getImageWritersByFormatName("jpeg"); ImageWriter writer = iter.next(); @@ -179,10 +311,15 @@ public class SigShare { iwp.setCompressionMode(ImageWriteParam.MODE_EXPLICIT); iwp.setCompressionQuality(0.8f); writer.setOutput(ios); - writer.write(null, new IIOImage(resizeImage(r.createScreenCapture(GraphicsEnvironment.getLocalGraphicsEnvironment().getMaximumWindowBounds()),w,h),null,null),iwp); + writer.write(null, new IIOImage(screenshot=resizeImage(r.createScreenCapture(GraphicsEnvironment.getLocalGraphicsEnvironment().getMaximumWindowBounds()),w,h),null,null),iwp); writer.dispose(); - //return screenshot; + return screenshot; + } + private static BufferedImage GetSubimage(BufferedImage screenshot, int x, int y, int w, int h) throws IOException { + BufferedImage newimg = screenshot.getSubimage(x, y, w, h); + ImageIO.write(newimg,"jpeg",new File("screenshot_part.jpg")); + return newimg; } static BufferedImage resizeImage(BufferedImage originalImage, int targetWidth, int targetHeight) throws IOException { Image resultingImage = originalImage.getScaledInstance(targetWidth, targetHeight, Image.SCALE_SMOOTH);