2

我知道使用 gtk2 可以使用 gtk2hs 将屏幕捕获到 pixbuf 中。此处给出了解决方案:Haskell 中的屏幕截图?. 问题是 gtk3 中没有 pixbufGetFromDrawable (至少在 gtk2hs 中)。有人可以推荐这个问题的解决方案吗?我需要这个用于linux,而不是windows。为方便起见,此处复制了链接中的解决方案。

import Graphics.UI.Gtk
import Graphics.UI.Gtk.Gdk.Screen
import System.Environment

main = do
  [fileName] <- getArgs
  initGUI
  Just screen <- screenGetDefault
  window <- screenGetRootWindow screen
  size <- drawableGetSize window
  origin <- drawWindowGetOrigin window
  Just pxbuf <- pixbufGetFromDrawable window ((uncurry . uncurry Rectangle) origin size)
  pixbufSave pxbuf filename "png" []
4

0 回答 0