как захватить изображение, похожее на alt plus print screen? - PullRequest
1 голос
/ 10 ноября 2011

Пытаюсь сделать снимок по качеству и размеру, подобный ALT + экран печати Может ли кто-нибудь помочь мне за то же самое?

Я попробовал следующий код для захвата:

dimScreenSize = Toolkit.getDefaultToolkit ().getScreenSize ();
rectScreenSize = new Rectangle (dimScreenSize);
BufferedImage bufimg=robot.createScreenCapture (rectScreenSize);

После захвата изображения я использовал его для сохранения в определенном месте, и снова я выбираю изображение и изменяю его размер, используя thumbnails.

loc =d_path+"\\a"+m+"a"+".jpg"; 
Thumbnails.of(new File(loc)).size(800, 800).outputQuality(1f).toFile(new File(loc));

Но качество изображения тоже плохое. Пожалуйста, помогите мне, есть ли другой?

Ответы [ 2 ]

1 голос
/ 10 декабря 2012
import java.awt.AWTException;
import java.awt.Robot;
import java.awt.Toolkit;
import java.awt.datatransfer.DataFlavor;
import java.awt.datatransfer.Transferable;
import java.awt.datatransfer.UnsupportedFlavorException;
import java.awt.event.KeyEvent;
import java.awt.image.RenderedImage;
import java.io.File;
import java.io.IOException;

import javax.imageio.ImageIO;

    public class AltPrintScreen {

        public static void main(String[] args) throws IOException, UnsupportedFlavorException, AWTException {

            Robot robot = new Robot();

            robot.keyPress(KeyEvent.VK_ALT);
            robot.keyPress(KeyEvent.VK_PRINTSCREEN);
            robot.keyRelease(KeyEvent.VK_PRINTSCREEN);
            robot.keyRelease(KeyEvent.VK_ALT);

            try {
                Thread.sleep(1000 * 2);
            } catch (InterruptedException e) {
                throw new RuntimeException( e );
            }

            Transferable t = Toolkit.getDefaultToolkit().getSystemClipboard().getContents(null);
            RenderedImage image = (RenderedImage)t.getTransferData(DataFlavor.imageFlavor);

            boolean isSuccess = ImageIO.write(image, "png", new File("altScreen.png"));

            System.out.println(isSuccess);
        }
    }
1 голос
/ 10 ноября 2011

Если качество изображения неудовлетворительное, попробуйте другой формат, например, png?

import java.awt.Rectangle;
import java.awt.Robot;
import java.awt.Toolkit;
import java.awt.image.BufferedImage;
import java.io.File;

import javax.imageio.ImageIO;

public class Capture
{
    public static void main(String[] args) throws Exception
    {
        Robot robot = new Robot();

        BufferedImage screenShot = robot.createScreenCapture(new Rectangle(Toolkit.getDefaultToolkit().getScreenSize()));
        ImageIO.write(screenShot, "png", new File("screenShot.png"));
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...