UNPKG

fabric-texture

Version:

This JavaScript library enables fast and efficient image distortion transformations using Canvas 2D.

43 lines (42 loc) 1.7 kB
import type { Texture } from '../texture.class'; /** * 在 Web Worker 中创建并渲染贴图 * * 使用 Web Worker 在后台线程中执行贴图渲染,以避免阻塞主线程: * 1. 在 Worker 中使用 OffscreenCanvas 进行渲染 * 2. 通过 ImageBitmap 传输渲染结果 * 3. 自动优化性能和内存使用 * * 工作流程: * 1. 准备数据:提取必要的贴图信息 * 2. 创建 Worker:初始化渲染环境 * 3. 执行渲染:在后台进行图像处理 * 4. 返回结果:将渲染结果转回主线程 * * @param texture - 贴图对象,包含变形网格和渲染选项 * @param imageData - 源图像数据 * @param destination - 目标渲染画布,如果为 null 则自动创建 * @param options - 渲染配置选项 * @property {number} x - 渲染位置 X 坐标 * @property {number} y - 渲染位置 Y 坐标 * @property {number} width - 渲染宽度 * @property {number} height - 渲染高度 * @property {number} [sourceScale=1] - 源图像缩放比例,大于1放大,小于1缩小 * @property {number} [destinationScale=1] - 目标画布缩放比例,大于1放大,小于1缩小 * * @returns {Promise<HTMLCanvasElement>} 渲染完成的画布对象 * * @throws {Error} * - 当 Worker 创建失败时 * - 当 OffscreenCanvas 不受支持时 * - 当渲染过程发生错误时 */ declare const createTextureWithWorker: (texture: Texture, imageData: ImageData, destination: HTMLCanvasElement | null, options: { x: number; y: number; width: number; height: number; sourceScale?: number; destinationScale?: number; }) => Promise<HTMLCanvasElement>; export default createTextureWithWorker;