Skip to content
On this page

导出jpg

下面我们将介绍如何利用 mxcad 插件实现在CAD图纸中的导出jpg图片功能。该功能中用户可以自主选择图纸范围并导出jpg格式的图片。图纸转jpg功能提高了文件的可读性和可分享性,还便于存储和处理,是一个非常实用的数据转换功能。

功能实现

  1. 设置导出范围

我们可以调用 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;
  1. 导出图片

在上述步骤中我们已经获取到了导出图片在图纸上的范围,以及导出的大小,因此接下来我们可以直接调用 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格式的图片