Home > PCB_MathPolygon > convertImageToComplexPolygon
PCB_MathPolygon.convertImageToComplexPolygon() method
此 API 当前处于 BETA 预览状态,希望得到开发者的反馈。它的任何功能都可能在接下来的开发进程中被修改,请不要将它用于任何正式环境。
将图像转换为复杂多边形对象
签名
typescript
function convertImageToComplexPolygon(
imageBlob: Blob,
imageWidth: number,
imageHeight: number,
tolerance?: number,
simplification?: number,
smoothing?: number,
despeckling?: number,
whiteAsBackgroundColor?: boolean,
inversion?: boolean,
): Promise<IPCB_ComplexPolygon | undefined>;1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
参数名
参数 | 类型 | 描述 |
|---|---|---|
imageBlob | Blob | 图像 Blob 文件,可以使用 方法从文件系统读取文件 |
imageWidth | number | 图像宽度 |
imageHeight | number | 图像高度 |
tolerance | number | (可选) 容差,取值范围 |
simplification | number | (可选) 简化,取值范围 |
smoothing | number | (可选) 平滑,取值范围 |
despeckling | number | (可选) 去斑,取值范围 |
whiteAsBackgroundColor | boolean | (可选) 是否白色作为背景色 |
inversion | boolean | (可选) 是否反相 |
返回值
Promise<IPCB_ComplexPolygon | undefined>
复杂多边形对象
示例
javascript
// 1. 用 canvas 画一张测试图:白色背景,中间 10×10 像素的黑色方块
const canvas = document.createElement('canvas');
canvas.width = 20;
canvas.height = 20;
const ctx = canvas.getContext('2d');
ctx.fillStyle = '#ffffff';
ctx.fillRect(0, 0, 20, 20);
ctx.fillStyle = '#000000';
ctx.fillRect(5, 5, 10, 10);
// 2. 导出为 PNG Blob
const imageBlob = await new Promise(resolve => canvas.toBlob(resolve, 'image/png'));
// 3. 描摹为复杂多边形(全部可选参数走默认值)
const complexPolygon = await eda.pcb_MathPolygon.convertImageToComplexPolygon(imageBlob, 20, 20);
// 4. 读取描摹结果:分块数量与第一块的源数据(描摹出的轮廓点,坐标由算法生成)
const sources = complexPolygon.getSourceStrictComplex();
console.log('polygonCount:', sources.length);
console.log('firstSource:', JSON.stringify(sources[0]).slice(0, 120));1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20