screenshot-native
Version:
Screenshots for NodeJS, blazingly fast and easy to use
36 lines (29 loc) • 944 B
text/typescript
import libnut from '@nut-tree/libnut';
import bufferToDataUrl from "buffer-to-data-url";
const encode_module = require('image-encode');
type Screenshot = {
width: number;
height: number;
image: Buffer;
};
type ScreenSize = {
width: number;
height: number;
};
export function getRegion(x1:number,y1:number,x2:number,y2:number):Screenshot{
return libnut.screen.capture(x1,y1,x1+x2,y1+y2)
}
export function screenSize():ScreenSize{
return libnut.getScreenSize()
}
export function screenshot():Screenshot{
const screensize = screenSize()
return getRegion(0,0,screensize.width,screensize.height)
}
export function encode (raw:Screenshot,format:string):Buffer{
const encoded = encode_module(raw.image,[raw.width,raw.height],format)
return Buffer.from(encoded)
}
export function toURL(buffer:Buffer):Promise<string>{
return bufferToDataUrl('image/png',buffer)
}