UNPKG

json-poster

Version:

Generate posters by configuring json

105 lines (104 loc) 2.72 kB
export declare enum ElementType { IMG = "img", TEXT = "text", RECT = "rect", LINE = "line", MUTIPLE_TEXT = "mutiple_text" } export declare enum xAlign { LEFT = "left", RIGHT = "right", CENTER = "center" } export declare enum yAlign { TOP = "top", BOTTOM = "bottom", CENTER = "center" } export declare enum ElementAlign { LEFT = "left", RIGHT = "right", CENTER = "center" } export interface ILinearGradientColor { type: 'linear'; colors: Array<any>; rotate: number; } export interface IRadialGradientColor { type: 'radial'; colors: Array<any>; center: [number, number]; radius: number; } export type IColor = ILinearGradientColor | IRadialGradientColor | string; export interface IPoster { width: number; height: number; background: IColor; directory?: string; elements: IElement[]; sort: number; } export interface IElement { type: ElementType | string; width: number; height: number; align?: ElementAlign | string; zIndex: number; x: number | xAlign; y: number | yAlign; rotate?: number; [key: string]: any; } export declare enum IImageMode { scaleToFill = "scaleToFill",// 缩放模式,不保持纵横比缩放图片,使图片的宽高完全拉伸至填满 image 元素 aspectFit = "aspectFit",// 缩放模式,保持纵横比缩放图片,使图片的长边能完全显示出来。也就是说,可以完整地将图片显示出来。 aspectFill = "aspectFill" } export interface TextFragmentStyle { color: string; fontSize: number; fontFamily?: string; fontWeight?: string | number; letterSpacing?: number; } export interface TextFragment extends TextFragmentStyle { content: string; width?: number; fragmentId?: number; } export interface ElementImg extends IElement { type: ElementType.IMG; mode?: IImageMode | string; content: string; gaussBlur: boolean; gaussRadius: number; borderRadius: number; } export interface ElementText extends IElement, TextFragmentStyle { type: ElementType.TEXT; content: string; lineHeight?: number; maxLine?: number; } export interface ElementMutipleText extends IElement, TextFragmentStyle { type: ElementType.MUTIPLE_TEXT; content: TextFragment[]; lineHeight?: number; maxLine?: number; } export interface ElementRect extends IElement { type: ElementType.RECT; color: IColor; borderColor: string; opacity?: number; gaussBlur?: boolean; gaussRadius?: number; borderRadius?: number; } export interface ElementLine extends IElement { color: string; opacity?: number; type: ElementType.LINE; }