2021-09-15 19:08:53 +02:00
|
|
|
export interface CollageMode<C extends CollageContext, I extends CollageImage> {
|
|
|
|
name: string;
|
|
|
|
minImages: number;
|
|
|
|
getSegments: (ctx: C, config?: CollageConfig, images?: I[]) => Segment[];
|
|
|
|
place: (ctx: C, images: I[], segments: Segment[]) => void;
|
|
|
|
forceConfig?: CollageConfig;
|
|
|
|
}
|
|
|
|
|
|
|
|
export interface CollageConfig {
|
|
|
|
numImages?: number;
|
|
|
|
}
|
|
|
|
|
|
|
|
export interface Segment {
|
|
|
|
x: number;
|
|
|
|
y: number;
|
|
|
|
w: number;
|
|
|
|
h: number;
|
|
|
|
}
|
|
|
|
|
2021-09-20 22:38:04 +02:00
|
|
|
|
2021-09-15 19:08:53 +02:00
|
|
|
export interface CollageContext {
|
|
|
|
globalCompositeOperation: string;
|
2021-09-20 22:38:04 +02:00
|
|
|
canvas: CollageCanvas
|
|
|
|
}
|
|
|
|
|
|
|
|
export interface CollageCanvas {
|
|
|
|
width: number;
|
|
|
|
height: number;
|
2021-09-23 12:38:41 +02:00
|
|
|
getContext: (x: '2d') => CollageContext | null
|
2021-09-15 19:08:53 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
export interface CollageImage {
|
|
|
|
width: number;
|
|
|
|
height: number;
|
|
|
|
}
|