Cara Mengambil Screenshot Layar Menggunakan Python

Dalam pemakaian komputer sehari-hari, seringkali kita perlu mengambil screenshot layar atau monitor.
Umumnya, bila menggunakan windows kita harus copy paste terlebih dahulu ke aplikasi paint, atau bisa juga dengan aplikasi Snipping tool.
Di windows 8 sampai 10 bisa dengan menekan tombol Windows + PrtScr dan file gambar akan langsung tersimpan dalam folder Screenshots di Pictures.
Dengan python kita bisa mengambil screenshot layar dan menyimpannya langsung jadi file dengan cara yang sangat mudah.

Ada 2 modul yang bisa kita gunakan.

1. Modul pyscreenshot
Modul ini sangat mudah digunakan. Pertama kita install terlebih dahulu modulnya.

pip install pyscreenshot

Selanjutnya, kita contohkan di sini mengambil tampilan layar yang kita beri nama sshot.jpg
Sintaksnya adalah:

pyscreenshot.grab_to_file(filename, childprocess=True, backend=None)

dimana:
filename = nama file
childprocess = proses virtual display dan backend untuk menghindari error
backend = backend yang digunakan (scrot, wx, dan sebagainya)

Kodenya adalah sebagai berikut.

import pyscreenshot as pshot
pyscreenshot.grab_file('screenshot.jpg', childprocess=False)

Gampang bukan? Untuk fitur lain dari modul ini, silahkan Anda eksplor.

2. Modul mss
Kelemahan dari modul pyscreenshot adalah kalau ada lebih dari 1 monitor, maka
screenshot yang diambil hanya monitor pertama, sedangkan yang ke 2 dan seterusnya tidak.
Hal ini bisa diatasi dengan menggunakan modul mss.
Dengan modul ini, kita bisa mengambil screenshot fullscreen semua layar atau hanya layar monitor
tertentu saja.

Pertama sekali, kita install dulu modulnya
pip install mss
Setelah itu, kita contohkan mengambil screenshot layar dan kita simpan sebagai sshot.png.

Sintaksnya adalah sebagai berikut:

sct.save(mon=0, output='monitor-{mon}.png, callback=None)

dimana:
mon = monitor ke berapa
output = nama file untuk disimpan
callback = Fungsi yang akan dijalankan sebelum file disimpan

Contoh penggunaannya adalah sebagai berikut:

from mss import mss
sct = mss()
sct.save('sshot1.png') # monitor pertama
sct.save(mon=1, output='sshot2.png') # monitor ke 2
sct.save(mon=-1, output='sshotfull.png') # semua monitor

Untuk lengkapnya fungsi-fungsi yang dimiliki modul mss, bisa Anda coba-coba sendiri.

Itulah 2 modul python yang bisa Anda gunakan untuk menyimpan screenshot layar dengan mudah.