Ở 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