Как я использую командную строку и wmctrl для создания окна больше, чем экран для получения огромного снимка экрана?

Я использую программу, которая делает большое изображение, которое я должен прокрутить к представлению. Программа не имеет никакого способа сохранить образ, и у меня нет доступа к источнику для изменения его. Единственным путем я должен добраться, изображение из программы снимком экрана. Моя цель состоит в том, чтобы сохранить полное изображение, не имея необходимость соединять отдельные снимки экрана.

Я использую этот сценарий, чтобы попытаться делать снимок экрана:

#!/bin/bash
window=$(wmctrl -l | grep "Program$" | awk '{print $1}')
wmctrl -v -i -r $window -e '0,0,0,6030,5828'
wmctrl -i -a $window
import -window $window ~/Desktop/screenshot.png

Это использует wmctrl для получения идентификатора окна ($window) для окна под названием "Программа". Это затем пытается изменить размер окна к желаемым размерам. Это использует imagemagick (импорт) для сохранения screenshot.png на Рабочем столе пользователя. Все это работает кроме изменить размер шага.

Я могу изменить размер окна с помощью wmctrl-r-e, но размеры, больше, чем размер экрана, не работают.

Я использую Ubuntu 10.04 и Рабочий стол Gnome. Я выполняю два монитора, но я попробовал это одним из них отключенный.

Существует ли способ изменить размер окна, больше, чем мой экран для получения огромного снимка экрана?

Вторая часть:

Благодаря ответу sdaau я пытался использовать xrandr для установки экранного панорамирования, чтобы иметь больший рабочий стол, чем мой монитор.

xrandr --output LVDS --panning 2600x2500

Эта команда передает экранное панорамирование ноутбука 2600x2500 рабочий стол размера, даже при том, что это может только показать 1440x900 когда-то. Для выключения панорамирования я могу использовать подобную команду для установки общего размера, и с обнуляет для раздела панорамирования. Это дает мне назад мое исходное поведение дисплея портативного компьютера.

xrandr --fb 1440x900 --output LVDS --panning 0x0

Это все сделано с xrandr и не требует никаких изменений Xorg.conf (моя система Ubuntu даже не имеет Xorg.conf).

Моя видеокарта, кажется, только позволяет приблизительно 6,5 миллионов пикселей, даже при том, что максимальные размеры 8192x8192. Тот максимум, кажется, максимум для любого размера, но существует предел тому, сколько пикселей может быть оттянуто, который является шириной, умноженной на высоту.

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

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

7
задан 27.09.2014, 08:06

1 ответ

Просто протестированный с import и окно, расширенное вне / больше, чем размер экрана; и это кажется import получит изображение того же размера как большой размер окна - к сожалению, все пиксели вне размера экрана, и все пиксели, покрытые другими окнами, будут черными.

Таким образом, возможно, единственный путь состоит в том, чтобы использовать xrandr чтобы увеличить размер экрана (как в 'экранном панорамировании') - или использовать что-то еще, что обеспечит больший размер экрана: например, "Как я могу сделать снимки экрана браузера в более высоком разрешении, чем моя поддержка браузера? - Суперпользователь" примечания:

Использовать Xephyr создать вложенный X сессий

(Xephyr находится, по-видимому, в sudo apt-get install xserver-xephyr в Ubuntu)

Надеюсь, это поможет,
Удачи!

Править: да, xrandr работы с обычным printscreen для меня (также с import, просто потребности достаточно пространства для терминала для установки, таким образом, это не перекрывает целевое окно), просто отмечают Виртуальный размер в xorg.conf (см. "xrandr: экран не может быть больше, чем"...),

1
ответ дан 07.12.2019, 15:18

Теги

Похожие вопросы