@thi.ng/imago
Version:
JSON & API-based declarative and extensible image processing trees/pipelines
43 lines • 1.71 kB
TypeScript
import type { Maybe } from "@thi.ng/api";
import type { Metadata } from "sharp";
import { type Color, type Dim, type Gravity, type IntBufferLike, type Position, type Sides, type Size, type SizeRef, type SizeUnit } from "./api.js";
export declare const isIntBufferLike: (x: any) => x is IntBufferLike;
export declare const ensureSize: (meta: Metadata) => false;
export declare const coerceColor: (col: Color) => string | {
r: number;
g: number;
b: number;
alpha?: number;
};
/**
*
* @remarks
* The given `size` MUST already be resolved (in pixels), e.g. via an earlier
* call to {@link computeSize}. `parentSize` is also in pixels.
*
* @param size
* @param parentSize
* @param opts
*/
export declare const positionOrGravity: ([w, h]: Dim, parentSize: Dim, { pos, gravity, origin, ref, unit, }: {
pos?: Position;
gravity?: Gravity;
origin?: Gravity;
ref?: SizeRef;
unit?: SizeUnit;
}) => {
gravity: string;
left?: undefined;
top?: undefined;
} | {
left: Maybe<number>;
top: Maybe<number>;
gravity?: undefined;
} | undefined;
export declare const gravityFlags: (gravity: Gravity) => boolean[];
export declare const gravityPosition: (gravity: Gravity, [w, h]: Dim, [parentW, parentH]: Dim) => number[];
export declare const refSize: ([w, h]: Dim, ref?: SizeRef) => Dim;
export declare const computeSize: (size: Size, curr: Dim, ref?: SizeRef, unit?: SizeUnit) => Dim;
export declare const computeSizeWithAspect: (size: number, [w, h]: Dim, aspect: number, unit?: SizeUnit, clamp?: boolean) => Dim;
export declare const computeMargins: (size: Size | Sides, curr: Dim, ref?: SizeRef, unit?: SizeUnit) => Sides;
//# sourceMappingURL=utils.d.ts.map