2009-11-14 13 views
7

Hice esta pregunta acerca de taking a picture of a webpage programmatically, y descargué y obtuve webkit2png trabajando (tomando fotos de páginas HTML como blogs y otras cosas). Tan genial, gracias por mostrarme eso!¿Toma ScreenShot of Desktop de forma programada en Ruby?

Ahora me gustaría comenzar a hacer más, como poder tomar fotos de sitios web Flash después de que se hayan cargado, y de mi escritorio.

¿Es posible tomar imágenes de sitios web Flash con webkit2png (teniendo en cuenta que puede que tenga que esperar unos segundos hasta que se cargue)?

Pero la pregunta principal es, ¿cómo programáticamente tomo imágenes del escritorio? Eso me permitiría tener mucho más control sobre lo que está pasando.

Respuesta

2

Esta es una pregunta increíble!

Hace un par de años tuve que trabajar en un proyecto similar. Encontré una biblioteca, llamada watir, que puede usar para controlar los navegadores del sistema de Ruby. Cuando revisé, no era realmente confiable en un entorno Linux, pero ahora parece ser bastante sólido.

Aquí hay un par de enlaces:

que nunca han intentado esta solución por lo que sería muy feliz si puede escribe aquí un comentario si decides ir con Watir. Todos los ejemplos se dirigen a un servidor de Windows, no encontré un tutorial válido usando un entorno Linux + Firefox.

3

Puede utilizar xwd(1) tomar una captura de pantalla de la ventana raíz:

xwd -display :0 -root|xwdtopnm |pnmtopng > $1 
1

Puede utilizar Watir WebDriver así:

$ 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> 

que parece hacer el trabajo bastante bien! Probé esto en mi Mac, pero me sorprendería que tampoco funcionara en Linux.

Cuestiones relacionadas