导出jpg
下面我们将介绍如何利用 mxcad 插件实现在CAD图纸中的导出jpg图片功能。该功能中用户可以自主选择图纸范围并导出jpg格式的图片。图纸转jpg功能提高了文件的可读性和可分享性,还便于存储和处理,是一个非常实用的数据转换功能。
功能实现
- 设置导出范围
我们可以调用 MxCADUtility.getCorner() 方法获取导出范围。
用户可以根据自身需求设置导出图片的大小即改图片的宽高。
ts
// 获取截图范围
const ret = await MxCADUtility.getCorner("选择截图范围", undefined, undefined, false, true);
if (!ret) return;
let mxcad = MxCpp.getCurrentMxCAD();
// 设置导出图片大小
let w = Math.abs(ret.pt1.x - ret.pt2.x);
let h = Math.abs(ret.pt1.y - ret.pt2.y);
if (w < 1 || h < 1) return;
let jpg_width = 400;
let jpg_height = jpg_width * h / w;
- 导出图片
在上述步骤中我们已经获取到了导出图片在图纸上的范围,以及导出的大小,因此接下来我们可以直接调用 McObject.mxdraw.createCanvasImageData() 方法来导出目标图片。其中,如果不设置导出图纸范围则将默认导出视区范围内的图纸内容。
ts
// 导出图片
mxcad.mxdraw.createCanvasImageData(
(imageData: String) => {
// 获取到导出图片地址imageData
let newWindow: any = window.open();
if (newWindow != null) {
newWindow.document.write('<img src="' + imageData + '"/>');
}
},
{
width: jpg_width, // 图片宽
height: jpg_height, // 图片高
range_pt1: ret.pt1.toVector3(), // 截图范围角点1
range_pt2: ret.pt2.toVector3(), // 截图范围角点2
}
);
功能实践
实践效果如下:
- 点击导出jpg按钮,执行导出jpg方法
- 根据命令行提示点击鼠标左键开始拉框选择导出范围
- 再次点击鼠标左键结束框选
- 成功将目标范围的图纸内容导出为jpg格式的图片