Ở bài viết trước, mình đã hướng dẫn các bạn screenshot màn hình Desktop sử dụng thư viện PyAutoGUI và OpenCV trong Python 3. Tiếp nối series về lập trình Python 3 thì bài này sẽ sử dụng thư viện GTK+3 để chụp ảnh màn hình Gnome Desktop
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", (), ())
Nguồn: vinasupport.com
 
                             
                             
                            ![[Python 3] Chụp ảnh Screenshot màn hình Desktop với OpenCV](https://vinasupport.com/uploads/2019/06/Python-3-Chup-Anh-Screenshot-Man-Hinh-OpenCV-300x250.png) 
                             
                             
                             
                            