Code:
ImageIO.read(new ByteArrayInputStream(b)
das byte array wird über das internet via socket erhalten und in das byte[] gespeichert.
hier nochmal der ganze code der betroffenen stellen:
hier ist der server der die anfrage sendet und das bild empfängt:
Code:
Socket socket = null;
ServerSocket server;
server = new ServerSocket(1478);
socket = server.accept();
InputStream in = socket.getInputStream();;
byte[] b = new byte[3000];
int byteLenght = 0;
while(in.read(b) != -1)
{
int j;
System.out.println(j = in.read());
byteLenght += j;
}
System.out.println(byteLenght);
byte[] image = new byte[byteLenght];
int byteCounter = 0;
in = socket.getInputStream();
for(int i1 = 0; i1 < b.length; lol++)
{
System.out.println("b: " + i1 + " value: " + b[lol]);
if(b[i1] == 0)
{
}
}
InputStream in1 = new ByteArrayInputStream(b);
BufferedImage img = ImageIO.read(new ByteArrayInputStream(b));
if(img == null) System.out.println("null");
ImageIO.write(img, "jpeg", new File("C:/image.jpg"));
in.close();
socket.close();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
und hier der client der einen screenshot macht und ihn an den server sendet:
Code:
System.out.println("taking screenshot");
BufferedImage screen = robot.createScreenCapture(new Rectangle(Toolkit.getDefaultToolkit().getScreenSize()));
ImageIO.write( screen, "jpg", new File("C:/boot&-8.jpg") );
BufferedImage srcImage = ImageIO.read(new File("C:/boot&-8.jpg"));
byte[] data = ((DataBufferByte) srcImage.getData().getDataBuffer()).getData();
Socket socket = new Socket(args[0], 1478);
OutputStream out = socket.getOutputStream();
Thread.currentThread().sleep(500);
out.write(data);
out.close();
socket.close();







