如何在Windows上使用Ruby捕获屏幕的一部分?

4

与其使用第三方应用,我更想用Ruby编写一个应用程序。当它被调用时,将捕获全屏并将其保存在c:\ screenshot \ snap000001.png中。

图形包已经准备好了,但是如何从全屏幕中捕获区域以便保存呢?

此程序将由某些快捷键调用,例如将其设置为按下CTRL-PrtScn或CTRL-CTRL(左右控制)或ALT-ALT时运行。

1个回答

8

我没有尝试过(我不在Windows上)。但是你可以使用Win32::Screenshot

在寻找的过程中,我发现以下内容,它使用该库进行屏幕截图。

width, height, bitmap = Win32::Screenshot.desktop
img_lst = ImageList.new
img_lst.from_blob(bitmap)
img_lst.write('public/screen.png')

而且应该将您的屏幕截图写成PNG文件。


1
目前这个 gem 在 Ruby 1.9 下的 write 操作失败,但 .bitmap 能够很好地输出 bmp 字符串源。 - Nakilon
请注意,此代码片段还需要rmagick gem。 - rogerdpack

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接