2015-07-20 3 views
0

Я просто нашел хороший пример JavaCV, который с помощью FFmpegFrameGrabber сделать скриншот код для Linux, который должен быть «быстрым»:javacv - быстрый скриншот - как получить изображение

try { 
    int x = 0, y = 0, w = 1366, h = 768; 
    FFmpegFrameGrabber grabber = new FFmpegFrameGrabber(":0.0+" + x + "," + y); 
    grabber.setFormat("x11grab"); 
    grabber.setImageWidth(w); 
    grabber.setImageHeight(h); 
    grabber.start(); 
    CanvasFrame frame = new CanvasFrame("Screen Capture"); 

    frame.showImage(grabber.grabImage()); 

    frame.dispose(); 
    grabber.stop(); 
} catch (FrameGrabber.Exception ex) { 
    ex.printStackTrace(); 
} 

... в любом случае я m все еще не уверен, как получить изображение скриншота для сохранения в файле. Я не мог найти какой-либо родственный пример, поэтому мне нужны ваши советы ...

Так что мой вопрос, как получить изображение снимка экрана, чтобы сделать возможным IO?

+0

* Так что мой вопрос, как получить изображение скриншота, чтобы сделать возможным IO? * Uh ... что? – Turing85

+0

@ Turing85 Код выше grabber.grabImage() см. Docs https://github.com/bytedeco/javacv/blob/master/src/main/java/org/bytedeco/javacv/FFmpegFrameGrabber.java возвращает кадр, который не является ни потоком ни изображение :(Так как получить полезный скриншот, который можно сохранить в файле, например? – user390525

+0

[Этот класс] (http://bytedeco.org/javacv/apidocs/org/bytedeco/javacv/Java2DFrameConverter.html) выглядит так: он может преобразовать 'Frame' в' BufferedImage'. – Turing85

ответ

1

Рассматривая API of JavaCV, есть аннотация FrameConverter<F> класс. Конкретная реализация Java2DFrameConverter выглядит так, как вы ищите.

+0

Я просто попробовал «CanvasFrame frame», и, как я могу его получить, его масштаб по умолчанию является минимальным, хотя я установил «frame.setSize (100,100)», но все же кадр кажется 10x10 pxl :(получить его, как правильно установить ширину и высоту CanvasFrame? – user390525

+0

Посмотрите на API. Я не могу сделать больше этого. – Turing85

+0

Я понимаю, но CanvasFrame, возможно, имеет другой способ установить ширину и высоту? – user390525

Смежные вопросы