fabric-texture
Version:
This JavaScript library enables fast and efficient image distortion transformations using Canvas 2D.
43 lines (42 loc) • 1.7 kB
TypeScript
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;