как программы скриншотов / скриншотов работают в системах POSIX с X?

  1. Как сделать скриншоты , такие как gnome-screenshot или xfce4-screenshooter, получить их данные?
  2. Как они могут получить доступ к потоку матрицы 2d пикселей монитора / экрана?
  3. Возможно ли передавать только данные конкретного монитора на настройку с несколькими мониторами? Я хочу передать данные в программу, которую я пытаюсь написать, которая будет программой / сценарием FOSS для настройки мультикомпьютера / монитора.

  • X Server не загружается, когда я добавляю файл 50-synaptics.conf внутри каталога xorg.conf.d
  • Escape on Control, управление клавишей Capslock, клавиша Capslock on Escape
  • Восстановление из Sys Rq + r
  • OEL6 Медленная загрузка && Миллионы файлов сокетов в / tmp / orbit-gdm
  • Как переопределить пользовательский курсор мыши с помощью Xcursor?
  • Неожиданное завершение работы Arch Linux
  • «Протокол не указан» при запуске Xorg через lightdm, но работает при запуске напрямую
  • Xorg говорит: «Не удалось открыть модуль intel», но intel_drv.so существует
  • One Solution collect form web for “как программы скриншотов / скриншотов работают в системах POSIX с X?”

    Для вопросов 1 и 2 я буду считать, что они обращаются к корневому окну с помощью RootWindow (3) , а затем используют XGetImage (3), чтобы скопировать данные пикселя корневого окна где-нибудь, чтобы обработать его дальше (например, сбрасывая его на PNG).

    Эти страницы руководства могут помочь: XOpenDisplay (3) , DefaultScreen (3) , RootWindow (3) , XGetImage (3)

    См. Также этот вопрос в StackOverflow.

    Что касается вопроса 3, если используется Xinerama, будет присутствовать более одного экрана, и приложение может получить информацию о местоположении и размере каждого экрана, что снова будет полезно для выбора области для копирования с помощью XGetImage(...) .

    Конечно, все это предполагает, что вы используете Xlib. Я слышал, что есть лучшая альтернатива, называемая XCB , но лично я ее никогда не использовал.

    Linux и Unix - лучшая ОС в мире.