我问了这个关于以编程方式为网页拍照的问题,我已经下载并让webkit2png正常工作(拍摄 HTML 页面,如博客等)。太酷了,谢谢你给我看!
现在我想开始做更多的事情,比如能够在 Flash 网站加载后拍摄它们以及我的桌面。
是否可以使用 webkit2png 拍摄 Flash 网站的照片(考虑到您可能需要等待几秒钟才能加载)?
但主要问题是,我如何以编程方式为桌面拍照?这将使我对正在发生的事情有更多的控制权。
我问了这个关于以编程方式为网页拍照的问题,我已经下载并让webkit2png正常工作(拍摄 HTML 页面,如博客等)。太酷了,谢谢你给我看!
现在我想开始做更多的事情,比如能够在 Flash 网站加载后拍摄它们以及我的桌面。
是否可以使用 webkit2png 拍摄 Flash 网站的照片(考虑到您可能需要等待几秒钟才能加载)?
但主要问题是,我如何以编程方式为桌面拍照?这将使我对正在发生的事情有更多的控制权。
您可以使用xwd(1)截取根窗口的屏幕截图:
xwd -display :0 -root|xwdtopnm |pnmtopng > $1
这是一个很棒的问题!
几年前,我不得不从事一个类似的项目。我找到了一个名为watir的库,您可以使用它从 Ruby 控制系统浏览器。在我检查的时候,它在 Linux 环境中并不是很可靠,但现在它似乎很可靠。
这里有几个链接:
我从未尝试过这个解决方案,所以如果你决定使用 Watir,如果你能在这里写下反馈,我会非常高兴。所有示例都针对 Windows 服务器,我没有找到使用 Linux + Firefox 环境的有效教程。
您可以像这样使用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 上也不能很好地工作,我会感到惊讶。