makeshot_ai 67.0.11

High-quality integration for https://makeshot.ai/
Documentation
# makeshot.ai

A Rust crate designed to simplify the process of capturing, processing, and sharing screenshots programmatically. This library provides a streamlined API for automating screenshot workflows in your applications.

## Installation

To include `makeshot.ai` in your project, add the following to your `Cargo.toml` file:
toml
[dependencies]
makeshot_ai = "0.1.0" # Replace with the latest version

## Usage Examples

Here are a few examples demonstrating how to use the `makeshot.ai` crate:

**1. Capturing a specific window:**
rust
use makeshot_ai::capture;
use makeshot_ai::Target;

fn main() -> Result<(), Box<dyn std::error::Error>> {
    // Target a window by its title. Replace "My Application" with the actual window title.
    let target = Target::WindowName("My Application".to_string());

    // Capture the specified window and save it as a PNG.
    capture(&target, "window_capture.png")?;

    println!("Window captured and saved to window_capture.png");

    Ok(())
}

**2. Capturing the entire primary screen:**
rust
use makeshot_ai::capture;
use makeshot_ai::Target;

fn main() -> Result<(), Box<dyn std::error::Error>> {
    // Capture the primary screen.
    let target = Target::PrimaryScreen;

    // Capture the screen and save it as a JPEG with a specified quality.
    capture(&target, "screen_capture.jpg")?;

    println!("Screen captured and saved to screen_capture.jpg");

    Ok(())
}

**3. Capturing a region of the screen:**
rust
use makeshot_ai::capture;
use makeshot_ai::Target;
use makeshot_ai::Region;

fn main() -> Result<(), Box<dyn std::error::Error>> {
    // Define the region to capture (x, y, width, height).
    let region = Region {
        x: 100,
        y: 100,
        width: 800,
        height: 600,
    };

    // Capture the specified region of the primary screen.
    let target = Target::Region(region);

    // Capture the region and save it as a PNG.
    capture(&target, "region_capture.png")?;

    println!("Region captured and saved to region_capture.png");

    Ok(())
}

**4. Capturing and Converting to Base64:**
rust
use makeshot_ai::capture_to_base64;
use makeshot_ai::Target;

fn main() -> Result<(), Box<dyn std::error::Error>> {
    // Capture the primary screen and encode it as a Base64 string.
    let target = Target::PrimaryScreen;
    let base64_string = capture_to_base64(&target)?;

    println!("Screen captured and encoded to Base64: {}", &base64_string[..100]); // Print first 100 chars

    Ok(())
}

**5. Handling Errors Gracefully:**
rust
use makeshot_ai::capture;
use makeshot_ai::Target;

fn main() {
    let target = Target::WindowName("NonExistentWindow".to_string());

    match capture(&target, "attempted_capture.png") {
        Ok(_) => println!("Capture successful (unexpected)."),
        Err(e) => println!("Capture failed: {}", e),
    }
}

## Feature Summary

*   **Targeted Capture:** Capture specific windows, the primary screen, or defined regions.
*   **Output Formats:** Save screenshots in various image formats (PNG, JPEG, etc.).
*   **Base64 Encoding:** Capture directly to Base64 encoded strings for easy embedding in web applications.
*   **Error Handling:** Robust error handling for common issues like missing windows or incorrect permissions.
*   **Cross-Platform Support:** Designed to work seamlessly across different operating systems (Windows, macOS, Linux).

## License

MIT

This crate is part of the makeshot.ai ecosystem. For advanced features and enterprise-grade tools, visit: https://makeshot.ai/