Trong bài viết trước, mình đã hướng dẫn cách chụp màn hình Desktop bằng Python 3, sử dụng thư viện PyAutoGUI và OpenCV. Tiếp tục chuỗi bài viết về lập trình Python 3, trong bài này, chúng ta sẽ khám phá cách chụp ảnh màn hình trên Gnome Desktop bằng cách sử dụng thư viện GTK+3.
Cài đặt Python Module (Ubuntu 16.04)
Đầu tiên mở Terminal trên Ubuntu và cài các package sau:
sudo apt install libgirepository1.0-dev gcc libcairo2-dev pkg-config python3-dev gir1.2-gtk-3.0
Để cài đặt các Python Module cần thiết sử dụng pip3
pip3 install pycairo pip3 install PyGObject
Chụp ảnh màn hình Desktop sử dụng GTK+3
– Chụp ảnh full màn hình Desktop (Screenshot full screen)
import gi gi.require_version('Gtk', '3.0') gi.require_version('Gdk', '3.0') from gi.repository import Gdk # full screenshot window = Gdk.get_default_root_window() pb = Gdk.pixbuf_get_from_window(window, *window.get_geometry()) pb.savev("full.png", "png", (), ())
– Chụp ảnh tất cả các sửa sổ trên màn hình Desktop
import gi gi.require_version('Gtk', '3.0') gi.require_version('Gdk', '3.0') from gi.repository import Gdk # screenshots for all windows window = Gdk.get_default_root_window() screen = window.get_screen() typ = window.get_type_hint() for i, w in enumerate(screen.get_window_stack()): pb = Gdk.pixbuf_get_from_window(w, *w.get_geometry()) pb.savev("{}.png".format(i), "png", (), ())
– Chụp ảnh cửa sổ đang active trên màn hình
import gi gi.require_version('Gtk', '3.0') gi.require_version('Gdk', '3.0') from gi.repository import Gdk # screenshot active window screen = Gdk.get_default_root_window().get_screen() w = screen.get_active_window() pb = Gdk.pixbuf_get_from_window(w, *w.get_geometry()) pb.savev("active.png", "png", (), ())