Программно взять ScreenShot of Desktop в Ruby?

Я задал этот вопрос о фотографировании веб-страница программным способом , и я загрузил и получил webkit2png (фотографирование HTML-страницы, такие как блоги и еще много чего). Так круто, спасибо, что показал мне это!

Теперь я хотел бы начать делать больше, например, снимать флеш-сайты после их загрузки и мой рабочий стол.

Можно ли делать снимки веб-сайтов Flash с помощью webkit2png (учитывая, что вам может потребоваться несколько секунд для его загрузки)?

Но главный вопрос в том, как программно сделать снимки рабочего стола? Это позволило бы мне намного лучше контролировать происходящее.

7 голосов | спросил Lance Pollard 14 62009vEurope/Moscow11bEurope/MoscowSat, 14 Nov 2009 11:43:19 +0300 2009, 11:43:19

3 ответа


0

Это потрясающий вопрос!

Пару лет назад мне пришлось работать над похожим проектом. Я нашел библиотеку под названием watir , которую можно использовать для управления системными браузерами из Ruby. В то время, когда я проверял, это не было действительно надежно в среде Linux, но сейчас это кажется довольно надежным.

Вот несколько ссылок:

Я никогда не пробовал это решение, поэтому буду очень рад, если вы напишите здесь отзыв, если решите пойти с Ватиром. Все примеры нацелены на сервер Windows, я не нашел правильного учебника по среде Linux + Firefox.

ответил Simone Carletti 14 62009vEurope/Moscow11bEurope/MoscowSat, 14 Nov 2009 12:42:45 +0300 2009, 12:42:45
0

Вы можете использовать xwd (1) , чтобы сделать снимок экрана корневое окно:

xwd -display :0 -root|xwdtopnm |pnmtopng > $1
ответил codehead 14 62009vEurope/Moscow11bEurope/MoscowSat, 14 Nov 2009 12:18:31 +0300 2009, 12:18:31
0

Вы можете использовать Watir WebDriver следующим образом:

$ irb
irb(main):001:0> require 'watir-webdriver'
=> true
irb(main):002:0> browser = Watir::Browser.new
=> #<Watir::Browser:0x136da92fad77d562 url="about:blank" title="">
irb(main):003:0> browser.goto 'http://stackoverflow.com/questions/1733715/programmatically-take-screenshot-of-desktop-in-ruby'
=> "http://stackoverflow.com/questions/1733715/programmatically-take-screenshot-of-desktop-in-ruby"
irb(main):004:0> browser.screenshot.save 'screenshot.png'
=> #<File:screenshot.png (closed)>
irb(main):005:0>

который, кажется, делает работу довольно хорошо! Я проверил это на своем Mac, но я был бы удивлен, если бы это не сработало и в Linux.

ответил Matt Wallis 19 J000000Friday13 2013, 14:03:35

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

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132