og_image_writer
Version:
Generate an Open Graphic Image using a CSS-like API.
491 lines (483 loc) • 13 kB
TypeScript
/* tslint:disable */
/* eslint-disable */
/**
*/
export function wasm_init(): void;
/**
*/
export enum ImageOutputFormat {
Png,
Jpeg,
}
/**
*/
export enum ImageInputFormat {
Png,
Jpeg,
}
/**
*/
export enum KernSetting {
Normal,
Metrics,
Optical,
}
/**
*/
export enum WordBreak {
Normal,
BreakAll,
}
/**
*/
export enum WhiteSpace {
Normal,
PreLine,
}
/**
* Adjust the horizontal position.
*/
export enum AlignItems {
Start,
Center,
End,
}
/**
* Adjust the vertical position.
*/
export enum JustifyContent {
Start,
Center,
End,
}
/**
* Adjust the text horizontal position.
*/
export enum TextAlign {
Start,
Center,
End,
}
/**
*/
export enum Position {
Static,
Absolute,
}
/**
*/
export enum FlexDirection {
Column,
Row,
}
type TextOverflow = 'clip' | 'ellipsis' | string;
/**
*/
export class BorderRadius {
free(): void;
/**
* @param {number} tl
* @param {number} tr
* @param {number} bl
* @param {number} br
* @returns {BorderRadius}
*/
static new(tl: number, tr: number, bl: number, br: number): BorderRadius;
/**
*/
bottom_left: number;
/**
*/
bottom_right: number;
/**
*/
top_left: number;
/**
*/
top_right: number;
}
/**
*/
export class FontContext {
free(): void;
/**
* @returns {FontContext}
*/
static new(): FontContext;
/**
* @param {Uint8Array} font
*/
push(font: Uint8Array): void;
/**
*/
clear(): void;
/**
* @returns {number}
*/
len(): number;
/**
* @returns {boolean}
*/
is_empty(): boolean;
}
/**
*/
export class ImageOutputFormatOption {
free(): void;
/**
* @returns {ImageOutputFormatOption}
*/
static new(): ImageOutputFormatOption;
/**
*/
q: number;
}
/**
*/
export class Margin {
free(): void;
/**
* @param {number} top
* @param {number} right
* @param {number} bottom
* @param {number} left
* @returns {Margin}
*/
static new(top: number, right: number, bottom: number, left: number): Margin;
/**
*/
bottom: number;
/**
*/
left: number;
/**
*/
right: number;
/**
*/
top: number;
}
/**
*/
export class OGImageWriter {
free(): void;
/**
* @param {WindowStyle} style
* @returns {OGImageWriter}
*/
static new(style: WindowStyle): OGImageWriter;
/**
* @param {WindowStyle} style
* @param {Uint8Array} data
* @param {number} format
* @returns {OGImageWriter}
*/
static from_data(style: WindowStyle, data: Uint8Array, format: number): OGImageWriter;
/**
* @returns {number}
*/
width(): number;
/**
* @returns {number}
*/
height(): number;
/**
* @param {string} text
* @param {Style} style
* @param {Uint8Array | undefined} font
*/
set_text(text: string, style: Style, font?: Uint8Array): void;
/**
* @param {TextArea} textarea
* @param {Style} style
* @param {Uint8Array | undefined} font
*/
set_textarea(textarea: TextArea, style: Style, font?: Uint8Array): void;
/**
* @param {Uint8Array} data
* @param {number} width
* @param {number} height
* @param {number} format
* @param {Style} style
*/
set_img_with_data(data: Uint8Array, width: number, height: number, format: number, style: Style): void;
/**
* @param {OGImageWriter} writer
* @param {Style} style
*/
set_container(writer: OGImageWriter, style: Style): void;
/**
* @param {string} dest
*/
generate(dest: string): void;
/**
*/
paint(): void;
/**
* @returns {Uint8Array}
*/
into_vec(): Uint8Array;
/**
* @param {number} f
* @param {ImageOutputFormatOption} option
* @returns {Uint8Array}
*/
encode(f: number, option: ImageOutputFormatOption): Uint8Array;
}
/**
*/
export class Rgba {
free(): void;
/**
* @param {number} r
* @param {number} g
* @param {number} b
* @param {number} a
* @returns {Rgba}
*/
static new(r: number, g: number, b: number, a: number): Rgba;
}
/**
*/
export class Style {
free(): void;
/**
* @returns {Style}
*/
static new(): Style;
/**
* For Img element
*/
border_radius: BorderRadius;
/**
*/
bottom?: number;
/**
* For Text element
*/
color: Rgba;
/**
* For Text element
*/
font_size: number;
/**
*/
kern_setting: number;
/**
*/
left?: number;
/**
* For Text element
*/
letter_spacing: number;
/**
* For Text element
*/
line_height: number;
/**
*/
margin: Margin;
/**
* For Text element
*/
max_height?: number;
/**
* For Text element
*/
max_width?: number;
/**
*/
position: number;
/**
*/
right?: number;
/**
* For Text element
*/
text_align: number;
/**
*/
text_overflow: TextOverflow;
/**
*/
top?: number;
/**
* For Text element
*/
white_space: number;
/**
* For Text element
*/
word_break: number;
}
/**
*/
export class TextArea {
free(): void;
/**
* @returns {TextArea}
*/
static new(): TextArea;
/**
* @param {string} text
* @param {Style | undefined} style
* @param {Uint8Array | undefined} font
*/
push(text: string, style?: Style, font?: Uint8Array): void;
}
/**
*/
export class WindowStyle {
free(): void;
/**
* @returns {WindowStyle}
*/
static new(): WindowStyle;
/**
*/
align_items: number;
/**
*/
background_color?: Rgba;
/**
* This controls the direction in which the children of a node are laid out.
*/
flex_direction: number;
/**
*/
height: number;
/**
*/
justify_content: number;
/**
*/
width: number;
}
export type InitInput = RequestInfo | URL | Response | BufferSource | WebAssembly.Module;
export interface InitOutput {
readonly memory: WebAssembly.Memory;
readonly __wbg_rgba_free: (a: number) => void;
readonly rgba_new: (a: number, b: number, c: number, d: number) => number;
readonly __wbg_borderradius_free: (a: number) => void;
readonly __wbg_get_borderradius_top_left: (a: number) => number;
readonly __wbg_set_borderradius_top_left: (a: number, b: number) => void;
readonly __wbg_get_borderradius_top_right: (a: number) => number;
readonly __wbg_set_borderradius_top_right: (a: number, b: number) => void;
readonly __wbg_get_borderradius_bottom_left: (a: number) => number;
readonly __wbg_set_borderradius_bottom_left: (a: number, b: number) => void;
readonly __wbg_get_borderradius_bottom_right: (a: number) => number;
readonly __wbg_set_borderradius_bottom_right: (a: number, b: number) => void;
readonly borderradius_new: (a: number, b: number, c: number, d: number) => number;
readonly __wbg_style_free: (a: number) => void;
readonly __wbg_get_style_margin: (a: number) => number;
readonly __wbg_set_style_margin: (a: number, b: number) => void;
readonly __wbg_get_style_line_height: (a: number) => number;
readonly __wbg_set_style_line_height: (a: number, b: number) => void;
readonly __wbg_get_style_font_size: (a: number) => number;
readonly __wbg_set_style_font_size: (a: number, b: number) => void;
readonly __wbg_get_style_letter_spacing: (a: number) => number;
readonly __wbg_set_style_letter_spacing: (a: number, b: number) => void;
readonly __wbg_get_style_kern_setting: (a: number) => number;
readonly __wbg_set_style_kern_setting: (a: number, b: number) => void;
readonly __wbg_get_style_word_break: (a: number) => number;
readonly __wbg_set_style_word_break: (a: number, b: number) => void;
readonly __wbg_get_style_white_space: (a: number) => number;
readonly __wbg_set_style_white_space: (a: number, b: number) => void;
readonly __wbg_get_style_color: (a: number) => number;
readonly __wbg_set_style_color: (a: number, b: number) => void;
readonly __wbg_get_style_text_align: (a: number) => number;
readonly __wbg_set_style_text_align: (a: number, b: number) => void;
readonly __wbg_get_style_max_height: (a: number, b: number) => void;
readonly __wbg_set_style_max_height: (a: number, b: number, c: number) => void;
readonly __wbg_get_style_max_width: (a: number, b: number) => void;
readonly __wbg_set_style_max_width: (a: number, b: number, c: number) => void;
readonly __wbg_get_style_position: (a: number) => number;
readonly __wbg_set_style_position: (a: number, b: number) => void;
readonly __wbg_get_style_top: (a: number, b: number) => void;
readonly __wbg_set_style_top: (a: number, b: number, c: number) => void;
readonly __wbg_get_style_right: (a: number, b: number) => void;
readonly __wbg_set_style_right: (a: number, b: number, c: number) => void;
readonly __wbg_get_style_bottom: (a: number, b: number) => void;
readonly __wbg_set_style_bottom: (a: number, b: number, c: number) => void;
readonly __wbg_get_style_left: (a: number, b: number) => void;
readonly __wbg_set_style_left: (a: number, b: number, c: number) => void;
readonly __wbg_get_style_border_radius: (a: number) => number;
readonly __wbg_set_style_border_radius: (a: number, b: number) => void;
readonly style_new: () => number;
readonly style_set_text_overflow: (a: number, b: number) => void;
readonly __wbg_windowstyle_free: (a: number) => void;
readonly __wbg_get_windowstyle_background_color: (a: number) => number;
readonly __wbg_set_windowstyle_background_color: (a: number, b: number) => void;
readonly __wbg_get_windowstyle_align_items: (a: number) => number;
readonly __wbg_set_windowstyle_align_items: (a: number, b: number) => void;
readonly __wbg_get_windowstyle_justify_content: (a: number) => number;
readonly __wbg_set_windowstyle_justify_content: (a: number, b: number) => void;
readonly __wbg_get_windowstyle_flex_direction: (a: number) => number;
readonly __wbg_set_windowstyle_flex_direction: (a: number, b: number) => void;
readonly windowstyle_new: () => number;
readonly __wbg_imageoutputformatoption_free: (a: number) => void;
readonly __wbg_get_imageoutputformatoption_q: (a: number) => number;
readonly __wbg_set_imageoutputformatoption_q: (a: number, b: number) => void;
readonly imageoutputformatoption_new: () => number;
readonly __wbg_fontcontext_free: (a: number) => void;
readonly fontcontext_new: () => number;
readonly fontcontext_push: (a: number, b: number, c: number) => void;
readonly fontcontext_clear: (a: number) => void;
readonly fontcontext_len: (a: number) => number;
readonly fontcontext_is_empty: (a: number) => number;
readonly wasm_init: () => void;
readonly __wbg_textarea_free: (a: number) => void;
readonly textarea_new: () => number;
readonly textarea_push: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
readonly __wbg_ogimagewriter_free: (a: number) => void;
readonly ogimagewriter_new: (a: number) => number;
readonly ogimagewriter_from_data: (a: number, b: number, c: number, d: number) => number;
readonly ogimagewriter_width: (a: number) => number;
readonly ogimagewriter_height: (a: number) => number;
readonly ogimagewriter_set_text: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
readonly ogimagewriter_set_textarea: (a: number, b: number, c: number, d: number, e: number) => void;
readonly ogimagewriter_set_img_with_data: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => void;
readonly ogimagewriter_set_container: (a: number, b: number, c: number) => void;
readonly ogimagewriter_generate: (a: number, b: number, c: number) => void;
readonly ogimagewriter_paint: (a: number) => void;
readonly ogimagewriter_into_vec: (a: number, b: number) => void;
readonly ogimagewriter_encode: (a: number, b: number, c: number, d: number) => void;
readonly __wbg_set_windowstyle_height: (a: number, b: number) => void;
readonly __wbg_set_margin_top: (a: number, b: number) => void;
readonly __wbg_get_windowstyle_height: (a: number) => number;
readonly __wbg_get_margin_top: (a: number) => number;
readonly __wbg_set_windowstyle_width: (a: number, b: number) => void;
readonly __wbg_set_margin_left: (a: number, b: number) => void;
readonly __wbg_set_margin_bottom: (a: number, b: number) => void;
readonly __wbg_set_margin_right: (a: number, b: number) => void;
readonly __wbg_get_windowstyle_width: (a: number) => number;
readonly __wbg_get_margin_left: (a: number) => number;
readonly __wbg_get_margin_bottom: (a: number) => number;
readonly __wbg_get_margin_right: (a: number) => number;
readonly margin_new: (a: number, b: number, c: number, d: number) => number;
readonly __wbg_margin_free: (a: number) => void;
readonly __wbindgen_malloc: (a: number) => number;
readonly __wbindgen_realloc: (a: number, b: number, c: number) => number;
readonly __wbindgen_add_to_stack_pointer: (a: number) => number;
readonly __wbindgen_free: (a: number, b: number) => void;
readonly __wbindgen_start: () => void;
}
export type SyncInitInput = BufferSource | WebAssembly.Module;
/**
* Instantiates the given `module`, which can either be bytes or
* a precompiled `WebAssembly.Module`.
*
* @param {SyncInitInput} module
*
* @returns {InitOutput}
*/
export function initSync(module: SyncInitInput): InitOutput;
/**
* If `module_or_path` is {RequestInfo} or {URL}, makes a request and
* for everything else, calls `WebAssembly.instantiate` directly.
*
* @param {InitInput | Promise<InitInput>} module_or_path
*
* @returns {Promise<InitOutput>}
*/
export default function init (module_or_path?: InitInput | Promise<InitInput>): Promise<InitOutput>;