Windows screen capture and pixel analysis for Bun - capture screenshots, read pixels, search for colors
npm install @winput/screenbash
bun add @winput/screen
`
Usage
`typescript
import { screen } from "@winput/screen";
const size = screen.getScreenSize();
const pixel = screen.getPixel(500, 300);
const capture = screen.capture(0, 0, 800, 600);
const text = await screen.recognizeText(100, 100, 400, 200);
console.log(text?.text);
`
API
$3
| Method | Params | Returns | Description |
|--------|--------|---------|-------------|
| getScreenSize() | - | Size | Primary monitor size |
| getMonitors() | - | [MonitorInfo[]](#monitorinfo) | All monitor info |
| capture(x?, y?, w?, h?) | number, number, number, number | ImageData \| null | Capture region |
| getPixel(x, y) | number, number | Pixel \| null | Get pixel color |
| checkPixel(x, y, color, tolerance?) | number, number, RGB, number | boolean | Check pixel match |
| waitForPixel(x, y, color, tolerance?, timeout?) | number, number, RGB, number, number | Promise | Wait for color |
| getMultiplePixels(positions) | [Position[]](#position) | [RGB[]](#rgb) | Get multiple colors |
| checkMultiplePixels(checks) | [PixelCheck[]](#pixelcheck) | boolean | Check multiple |
| waitForAnyPixel(checks, timeout?) | [PixelCheck[]](#pixelcheck), number | Promise | Wait any match |
| pixelSearch(x1, y1, x2, y2, color, tolerance?) | number×4, RGB, number | Point \| null | Find color |
| imageSearch(x1, y1, x2, y2, image, tolerance?) | number×4, string, number | Promise<Point \| null> | Find image |
| recognizeText(x, y, w, h, options?) | number×4, OCROptions | Promise<OCRResult \| null> | OCR extract |
Types
$3
`typescript
{ width: number; height: number }
`
$3
`typescript
{ x: number; y: number }
`
$3
`typescript
{ x: number; y: number }
`
$3
`typescript
{ r: number; g: number; b: number }
`
$3
`typescript
{
x: number; y: number;
r: number; g: number; b: number;
isEqual(color: RGB): boolean;
isSimilar(color: RGB, tolerance: number): boolean;
toHex(): string;
}
`
$3
`typescript
{ x: number; y: number; color: RGB; tolerance?: number }
`
$3
`typescript
{ width: number; height: number; buffer: Uint8Array }
`
$3
`typescript
{
deviceName: string;
rect: Rect;
workArea: Rect;
isPrimary: boolean;
}
`
$3
`typescript
{
text: string;
confidence: number;
words: Array<{ text: string; confidence: number; bbox: Rect }>;
}
`
$3
`typescript
{ lang?: string } // Default: "eng"
`
Exports
| Export | Type | Description |
|--------|------|-------------|
| screen | Screen | Main screen operations |
| Pixel | Pixel` | Pixel with utility methods |