It's a fairly simple library that performs good enough, the OS level APIs that were used are inspired by python-mss.
- Windows implementation uses the Windows GDI API.
- Linux X11 implementation uses the XRandR extension to get information about the displays, for capturing the XShm extension is used if available, otherwise we fallback to the standard protocol.
- MacOS implementation uses the Core Graphics Framework.
To run this code you also need to add image crate to your project and enable the jpeg feature, otherwise you won't be able to save the file as JPEG.
The same goes for any other format as well, if you wanna treat the image as PNG you must enable png feature. Check their documentation to see which formats are available.
use captis::{init_capturer, Capturer};
let capturer = init_capturer().expect("Couldn't Initialize Capturer");
let image = capturer.capture(0).expect("Couldn't Capture Screen");
image.save("test.jpeg").expect("Couldn't Save Image");
- Windows
- Linux (X11)
- MacOS