2013-06-05 2 views
1

Я ищу программу для захвата экрана в Linux с помощью C или Cpp. может кто-то помочь с предоставлением скелетной структуры или программы, что может мне помочь.Программа захвата экрана в C или C++ и Linux

Спасибо и отношения, RC

+1

возможный дубликат [быстрый метод для захвата экрана в Linux] (http://stackoverflow.com/questions/13479975/fastest-method-for- screen-capture-on-linux) –

+0

Прочтите инструкцию для libX11: вы можете захватить отображение и сохранить его содержимое в файл. –

+0

Возьмите код из 'xwd' источников: вам нужно всего 1-2 страницы кода! –

ответ

3

How to capture screen with ffmpeg:

Используйте устройство x11grab:

FFmpeg -f x11grab -r 25 -s 1024x768 -i: 0.0 + 100200 output.flv

Это позволит захватить изображение с рабочего стола, начиная с верхнего левого угла (x = 100, y = 200) с шириной и высотой 1024x768.

Если вам нужен аудио тоже можно использовать ALSA, как это:

FFmpeg -f x11grab -r 25 -s 1024x768 -i: 0,0 + 100200 -f ALSA -ac 2 -i импульс output.flv

Таким образом, вы можете просто поместить это в capture.sh и запустить его из вашего кода:

#include <cstdlib> 

int main(){ std::system("./capture.sh"); } 

Если вы должны сделать это без вызова внешних утилит, вы можете использовать libffmpeg directly.

+0

Это хорошо выглядит. Я пытался использовать внешние библиотеки, но не мог найти идеальную программу. есть ли какие-нибудь примеры программ, которые используют сторонний api для захвата экрана? – Pferd

+0

Это сработало http://stackoverflow.com/questions/15507788/making-a-screenshot-using-xlib-and-cairo-libs-fail – Pferd

0

программа "scrot" с открытым исходным кодом может быть удовлетворена вашим требованием.

Licenses   BSD Original 
Operating Systems POSIX BSD Linux 
Implementation  C language 

получить исходный код Scrot here

scrot-0.8/src$ wc -l *.{c,h} 
    187 getopt1.c 
1043 getopt.c 
    57 imlib.c 
    632 main.c 
    264 options.c 
    31 debug.h 
    136 getopt.h 
    51 options.h 
    96 scrot.h 
    31 structs.h 
2528 total 
Смежные вопросы