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

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

  • Могу ли я сделать вторую мышь / клавиатуру (виртуальную) для использования xdotool?
  • Как я могу запустить команду, если мой экран изменил состояние в режиме ожидания на включение и наоборот
  • Почему xsetwacom не работает с udev?
  • Как X сопоставляет коды проверки ключа ядра с ключом?
  • Получить имя файла сфокусированного окна в xmonad
  • Gnome не работает в tty7
  • Не удается запустить startx на Debian после некоторых изменений
  • XOrg-config-файлы в настройке шмеля
  • 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 - лучшая ОС в мире.