scrap 0.1.2

Screen capture made easy.

scrap

Scrap records your screen! At least it does if you're on Windows, macOS, or Linux.

Usage

[dependencies]
scrap = "0.1.2"

Its API is as simple as it gets!

struct Display; /// A screen.
struct Frame; /// Just a byte array.
struct Capturer; /// A recording instance.

impl Capturer {
    /// Begin recording.
    pub fn new(display: Display) -> io::Result<Capturer>;
    /// Try to get a frame!
    /// Returns WouldBlock if it would block.
    pub fn frame<'a>(&'a mut self) -> io::Result<Frame<'a>>;

    pub fn width(&self) -> usize;
    pub fn height(&self) -> usize;
    pub fn format(&self) -> PixelFormat; // Almost always ARGB8888.
}

impl Display {
    /// The main screen.
    pub fn main() -> io::Result<Display>;
    /// All the screens.
    pub fn all() -> io::Result<Vec<Display>>;

    pub fn width(&self) -> usize;
    pub fn height(&self) -> usize;
}

Contributing

Please contribute! Here's some stuff that needs doing:

  • Supporting non-mappable Windows devices.
  • Examples, and lots of them!
  • Android support (a stretch.)

For minor things that need doing, rg or grep for TODO in the source directory.