при звгрузке линукса запускается обычно 7 терминалов. У меня иксы на 7ом.Я хочу, не прерывая свою работу в иксах сделать снимок со второго виртуального терминала.
Просто снять экран можно так:
chvt 2;sleep2; fbgrab ...
но это прервет мою работу и сменит виртуальный терминал. Как же сделать скриншот того, чего нет в данный момент на экране?
Как сделать скриншот консоли не переключая виртуальный терминал?
Весь вопрос в том, зависит ли как либо работа X-сервера в общем от данной библиотеки.
Я посмотрел на 6 имеющихся у меня линуксах. Везде есть, где есть X-server.
Подскажите, всегда ли она есть в системе(libMagickCore) где установлены иксы.
У всех есть как linux console, так и экземпляр X11 на каком-нить tty.
Меня озаботило следующее. Как,универсальным образом, не прибегая к сторонним библиотекам типа Qt(но там с linux console не берется) снять снимок экрана.
Так вот задача.
хочу: программа делает скриншоты с текущего экрана и неважно что на нем, linux console или иксы.
что умею:
с помощью framebuffer брать скрины с linux console.И вообще с экрана.
НО. если фреймбуфер не настроен так же как и Иксы(разрешение или глубина цвета), то через него не получается получить полноценное содержимое экрана.
Умею с помощью Qt или совсем чисто на X библиотеках получать содержимое экрана, но это тянет за собой много зависимостей,в том числе и от версий библиотек. Используя только Xlib - не написал, но вместе с ImageMagick или Magick++ написал.
Но я хочу, чтобы мое приложение должно иметь минимум зависимостей.
Приходит разумный вопрос: почему бы не настроить одинаково Иксы и фреймбуффер - потому что пользователь не должен заметить изменений в своей системе.Все это делается чтобы снимать скрины с машины, пользователь которой не знает, что его сейчас снимают и он не должен переживать =)
Что хочу спросить:
в /dev есть такие устройства как nvidia0 nvidiactrl и т.д. Эти уустройства создаются драйвером видеокарты. Все что мне пока понятно - так это то, что они символьные =))) Как с ними взаимодействовать и через какие ioctl - непонятно. НО ведь как-то это возможно!
Или же есть еще какой-нибудь механизм,кроме фреймбуффера для получения содержимого экрана.
Если кто знает или сталкивался с такой темой - поделитесь.
Или же реализация скриншотов на чистой Xlib.