@beenotung/tslib
Version:
utils library in Typescript
78 lines (77 loc) • 3.8 kB
TypeScript
import { Result } from './result';
/**
* reference : https://stackoverflow.com/questions/20958078/resize-a-base-64-image-in-javascript-without-using-canvas
* */
export declare function imageToCanvas(img: HTMLImageElement, width: number, height: number): HTMLCanvasElement;
export declare function imageToBase64(img: HTMLImageElement, width: number, height: number): string;
export declare function convertHeicFile(file: File): Promise<File>;
/** @alias convertHeicFile */
export declare const convertHeifFile: typeof convertHeicFile;
export declare function base64ToImage(data: string): Promise<HTMLImageElement>;
/**
* TODO check if there are exceptions
* */
export declare function checkBase64ImagePrefix(s: string): string;
/**
* data type conversion
* also work for resizing
* FIXME wrap width and height into options object
* */
export declare function base64ToCanvas(data: string, width?: number, height?: number): Promise<HTMLCanvasElement>;
export declare function resizeBase64Image(data: string, targetWidth: number, targetHeight: number): Promise<string>;
export interface ISize {
width: number;
height: number;
}
export declare function getWidthHeightFromBase64(data: string): Promise<ISize>;
export declare const ResizeTypes: {
with_in: "with_in";
at_least: "at_least";
};
export type ResizeType = keyof typeof ResizeTypes;
export declare function resizeWithRatio(oriSize: ISize, targetSize: ISize, mode: ResizeType): ISize;
export declare function resizeBase64WithRatio(data: string, preferredSize: ISize, mode: ResizeType): Promise<string>;
export declare function resizeImage(image: HTMLImageElement, maxWidth?: number, maxHeight?: number, mimeType?: string, quality?: number): base64;
export type base64 = string;
export declare function transformCentered(image: HTMLImageElement, flipXY: boolean, f: (ctx: CanvasRenderingContext2D) => void): HTMLCanvasElement;
export declare function rotateImage(image: HTMLImageElement): HTMLCanvasElement;
export declare function flipImage(image: HTMLImageElement, direction?: 'X' | 'Y' | 'horizontal' | 'vertical'): HTMLCanvasElement;
export declare function flipImageX(image: HTMLImageElement): HTMLCanvasElement;
export declare function flipImageY(image: HTMLImageElement): HTMLCanvasElement;
/**
* extract mime type from base64/URLEncoded data component
* e.g. data:image/jpeg;base64,... -> image/jpeg
* */
export declare function dataURItoMimeType(dataURI: string): string;
/**
* convert base64/URLEncoded data component to raw binary data held in a string
* e.g. data:image/jpeg;base64,...
* */
export declare function dataURItoBlob(dataURI: string): Blob;
export declare function dataURItoFile(dataURI: string, originalFile?: File): File;
/** simplified version of compressImageToBase64() / compressImageToBlob() */
export declare function compressImage(image: HTMLImageElement, mimeType?: string, quality?: number): base64;
export declare function compressImageToBase64(args: {
image: HTMLImageElement;
canvas?: HTMLCanvasElement;
ctx?: CanvasRenderingContext2D;
mimeType?: string;
maximumLength?: number;
quality?: number;
}): base64;
export declare function canvasToBlob(canvas: HTMLCanvasElement, mimeType?: string, quality?: number): Promise<Blob>;
export declare function compressImageToBlob(args: {
image: HTMLImageElement;
canvas?: HTMLCanvasElement;
ctx?: CanvasRenderingContext2D;
mimeType?: string;
maximumSize?: number;
quality?: number;
}): Promise<Blob>;
export declare function toImage(image: base64 | File | HTMLImageElement): Result<HTMLImageElement>;
export declare function compressMobilePhoto(args: {
image: base64 | File | HTMLImageElement;
maximumSize?: number;
mimeType?: string;
quality?: number;
}): Promise<base64>;