1
Java에서 원격 제어 응용 프로그램을 만들려고합니다. 로봇을 사용하여 내 화면 이미지를 캡처 한 다음 서버로 보내야합니다. 그러나 이미지 크기가 너무 커서 전송 속도가 빨라지므로 코드의 이미지 품질이 변경됩니다.화질 변경
문제는 코드를 가지고 있기 때문에 이미지를 변경 한 후 자동으로 내 컴퓨터에 파일로 저장되지만 원하지 않습니다. 나는 내 서버에
코드를 보낼 수 있도록 저장하지 않고 변화 그것을 원하는 : 파일을 만드는 대신
Robot robot = null;
Rectangle rectangle = null;
GraphicsEnvironment gEnv=GraphicsEnvironment.getLocalGraphicsEnvironment();
GraphicsDevice gDev=gEnv.getDefaultScreenDevice();
//Get screen dimensions
Dimension dim = Toolkit.getDefaultToolkit().getScreenSize();
rectangle = new Rectangle(dim);
System.out.println(rectangle);
robot = new Robot(gDev);
BufferedImage image = robot.createScreenCapture(rectangle);
// FileInputStream inputStream = new FileInputStream(MyFile);
// BufferedImage originalImage = ImageIO.read(inputStream);
Iterator iter = ImageIO.getImageWritersByFormatName("jpeg");
ImageWriter writer = (ImageWriter)iter.next();
ImageWriteParam iwp = writer.getDefaultWriteParam();
iwp.setCompressionMode(ImageWriteParam.MODE_EXPLICIT);
float quality = 0.25f; // reduce quality by 50%
iwp.setCompressionQuality(quality);
File file = new File("Tester6.png");
FileImageOutputStream output = new FileImageOutputStream(file);
writer.setOutput(output);
IIOImage image1 = new IIOImage(image, null, null);
writer.write(null, image1, iwp);
writer.dispose();