繁体   English   中英

以编程方式在Ruby中使用ScreenShot of Desktop?

[英]Programmatically take ScreenShot of Desktop in Ruby?

我问过这个关于以编程方式拍摄网页图片的问题,我已经下载并使webkit2png正常工作(拍摄像博客和诸如此类的HTML页面的照片)。 太酷了,谢谢你告诉我的!

现在我想开始做更多事情,比如能够在加载Flash桌面和桌面后拍摄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上也不能正常工作,我会感到惊讶。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM