30 lines
1 KiB
TypeScript
30 lines
1 KiB
TypeScript
export interface ImageResizeOptions {
|
|
maxWidth?: number;
|
|
maxHeight?: number;
|
|
maxBytes?: number;
|
|
jpegQuality?: number;
|
|
}
|
|
export interface ResizedImage {
|
|
data: string;
|
|
mimeType: string;
|
|
originalWidth: number;
|
|
originalHeight: number;
|
|
width: number;
|
|
height: number;
|
|
wasResized: boolean;
|
|
}
|
|
/**
|
|
* Resize an image to fit within the specified max dimensions and encoded file size.
|
|
* Returns null if the image cannot be resized below maxBytes.
|
|
*
|
|
* Uses Photon (Rust/WASM) for image processing. If Photon is not available,
|
|
* returns null.
|
|
*
|
|
* Strategy for staying under maxBytes:
|
|
* 1. First resize to maxWidth/maxHeight
|
|
* 2. Try both PNG and JPEG formats, pick the smaller one
|
|
* 3. If still too large, try JPEG with decreasing quality
|
|
* 4. If still too large, progressively reduce dimensions until 1x1
|
|
*/
|
|
export declare function resizeImageInProcess(inputBytes: Uint8Array, mimeType: string, options?: ImageResizeOptions): Promise<ResizedImage | null>;
|
|
//# sourceMappingURL=image-resize-core.d.ts.map
|