UNPKG

draw-html-to-canvas

Version:

根据html+css规范绘制 网页到canvas

117 lines (116 loc) 4.41 kB
/** * 随机颜色 * @param start * @param end */ import { BackgroundRepeat, TContinueDraw, TQuadraticCurvePath } from './constants'; import { IGradient } from './style'; export declare const randomColor: (start?: number, end?: number, a?: number) => string; export declare enum DrawRepeatType { image = "image", gradient = "gradient" } /** * 画重复图像 带着偏移量 自动填充整个容器 * @param ctx * @param drawType DrawRepeatType * @param image * @param imageWidth 图像宽度 * @param imageHeight 图像高度 * @param startLeft 绘制起点 * @param startTop 绘制起点 * @param boxLeft 容器起点 * @param boxTop 容器起点 * @param boxWidth 容器尺寸 * @param boxHeight 容器尺寸 * @param repeat 重复类型 * @param continueDraw 选区内继续绘图 */ export declare const drawRepeat: (ctx: CanvasRenderingContext2D, drawType: DrawRepeatType, image: HTMLImageElement | CanvasGradient, imageWidth: number, imageHeight: number, startLeft: number, startTop: number, boxLeft: number, boxTop: number, boxWidth: number, boxHeight: number, repeat: BackgroundRepeat, continueDraw?: TContinueDraw) => void; /** * 截取 起点 - t 点 * @param P0 起点 * @param P1 控制点 * @param P2 结束点 * @param t 截取百分比 * @returns {[number,number,number]} P0, M, B */ export declare const cutCurveStart: (P0: number, P1: number, P2: number, t: number) => number[]; /** * 截取贝塞尔曲线 从 【起点 - t时刻】 路径 * 返回新的曲线的 [起点, 控制点, 终点] 的坐标 * @param path [起点, 控制点, 终点] 坐标 * @param t 时刻百分比 */ export declare const cutCurveStartPath: (path: number[][], t: number) => TQuadraticCurvePath; /** * 截取从 t - P2 点 * @param P0 * @param P1 * @param P2 * @param t * @returns {[number,number,number]} B, N, P2 */ export declare const cutCurveEnd: (P0: number, P1: number, P2: number, t: number) => number[]; /** * 截取贝塞尔曲线【t时刻 到 终点】的路径 * 返回新的曲线的 [起点, 控制点, 终点] 的坐标 * @param path [起点, 控制点, 终点] 坐标 * @param t 时刻百分比 */ export declare const cutCurveEndPath: (path: number[][], t: number) => TQuadraticCurvePath; /** * 截取 t1 - t2 * @param P0 * @param P1 * @param P2 * @param t1 起始百分比 * @param t2 结束百分比 */ export declare const cutCurveMiddle: (P0: number, P1: number, P2: number, t1: number, t2: number) => number[]; /** * 截取贝塞尔曲线 【t1时刻 到 t2时刻】 路径 * 返回新的曲线的 [起点, 控制点, 终点] 的坐标 * @param path [起点, 控制点, 终点] 坐标 * @param t1 时刻百分比 * @param t2 时刻百分比 */ export declare const cutCurveMiddlePath: (path: number[][], t1: number, t2: number) => TQuadraticCurvePath; export declare const values: (obj: any) => any[]; /** * 创建线性渐变 * @param ctx * @param width * @param height * @param gradient */ export declare const createLinearGradient: (ctx: CanvasRenderingContext2D, width: number, height: number, gradient: IGradient) => CanvasGradient; /** * 三次贝塞尔模拟椭圆 环境支持优先使用环境的 * 效率比画圆形缩放要低一些 但是在小程序中没有问题 * @param {CanvasRenderingContext2D} ctx * @param {number} x * @param {number} y * @param {number} radiusX * @param {number} radiusY * @param {number} rotation * @param {number} startAngle * @param {number} endAngle * @param {boolean?} counterclockwise */ export declare const ellipse: (ctx: CanvasRenderingContext2D, x: number, y: number, radiusX: number, radiusY: number, rotation: number, startAngle: number, endAngle: number, counterclockwise?: boolean) => void; /** * 圆形缩放成椭圆 环境支持优先使用环境的 * 小程序环境绘制异常 * @param {CanvasRenderingContext2D} ctx * @param {number} x * @param {number} y * @param {number} radiusX * @param {number} radiusY * @param {number} rotation * @param {number} startAngle * @param {number} endAngle * @param {boolean?} counterclockwise */ export declare const ellipse2: (ctx: CanvasRenderingContext2D, x: number, y: number, radiusX: number, radiusY: number, rotation: number, startAngle: number, endAngle: number, counterclockwise?: boolean) => void; export declare const makeMap: <T = any>(obj: any) => { [K in keyof T]: K; };