Hola,
usando los mismos métodos usados en mi tema anterior enviaré una captura de pantalla en el cliente para enviárselo al servidor.

Código
Capturar pantalla y enviarla:

Código: Seleccionar todo

try {
            ServerSocket srvSock = new ServerSocket(1234);
            sock = srvSock.accept();
            dos = new DataOutputStream(sock.getOutputStream());
            int quality = 100; //número del 1 al 100
            
            Rectangle rectangleTam = new Rectangle(Toolkit.getDefaultToolkit().getScreenSize());
            Robot robot = new Robot();
            BufferedImage bufferedImage = robot.createScreenCapture(rectangleTam);

            int width = (bufferedImage.getWidth() / 100) * quality;
            int height = (bufferedImage.getHeight() / 100) * quality;

            Image imag = bufferedImage.getScaledInstance(width, height, 0);
            BufferedImage buffered = new BufferedImage(width, height, Image.SCALE_REPLICATE);
            buffered.getGraphics().drawImage(imag, 0, 0, null);

            ByteArrayOutputStream salidaImagen = new ByteArrayOutputStream();
            ImageIO.write(buffered, "jpg", salidaImagen);
            byte[] bytesImagen = salidaImagen.toByteArray();
            escribir(bytesImagen);
        } catch (Exception ex) {
            System.out.println("[main] Hubo un error: "+ex.getMessage());
        }
Recibir pantalla y mostrarla:

Código: Seleccionar todo

try {
            sock = new Socket("localhost", 1234);
            dis = new DataInputStream(sock.getInputStream());

            byte[] bytesImagen = leer();
            ByteArrayInputStream entradaImagen = new ByteArrayInputStream(bytesImagen);;
            BufferedImage bufferedImage = ImageIO.read(entradaImagen);

            /* ESCALAR LA IMAGEN AL TAMAÑO DEL JLABEL */
            Image img = new ImageIcon(bufferedImage).getImage();
            Image newimg = img.getScaledInstance(jLabel1.getWidth(), jLabel1.getHeight(), java.awt.Image.SCALE_SMOOTH);
            
            jLabel1.setIcon(new ImageIcon(newimg));
        } catch (Exception ex) {
            System.out.println("[main] Hubo un error: " + ex.getMessage());
        }
NOTA: Para mostrar la imagen se usa el JLabel.

Imagen:
Imagen
Responder

Volver a “Fuentes”