返回介绍

指南

MxCAD API 文档

13. 图片

发布于 2024-07-31 21:40:00 字数 4041 浏览 0 评论 0 收藏 0

图片

我们可以先通过调用 mxcad 实例化对象中的 loadImage() 方法来加载一个外部图片到当前上下文,再调用 drawImage() 方法来绘制目标图片。

点击 loadImage()drawImage() 查看详细属性和方法说明。

import { MxCpp, MxCADUiPrPoint } from "mxcad"

// 绘图片函数
async function Mx_Test_DrawImage() {
  const getPoint = new MxCADUiPrPoint();
  getPoint.setMessage("\n指定插入点:");
  let pt = await getPoint.go();
  if (!pt) return;

  let mxcad = MxCpp.getCurrentMxCAD();
  let imagUrl = "http://www.wenjiangs.com/wp-content/uploads/2024/docimg5/225-2czfdjz2mbx.jpg";

  mxcad.loadImage(imagUrl,(image)=>{
    if(!image ){ 
      console.log("loadImage failed");
      return;
    }
    let width = mxcad.mxdraw.viewCoordLong2Cad(100);
    let height  = (image.height /  image.width) * width;
    mxcad.drawImage((pt as any).x,(pt as any).y,width,height,0,imagUrl);
    mxcad.updateDisplay();
  });
}

:::demo

import { MxFun } from "mxdraw"
import {  McObject, MxCADUiPrPoint } from "mxcad"

export default () => {
    const mxcad = new McObject()
    mxcad.create({
      canvas: "#myCanvas",
      locateFile: (fileName: string)=> {
            // CDN 加载必须使用wasm/2d-st中的资源、因为github的限制无法使用wasm/2d 资源
            // 需要使用wasm/2d需要遵循浏览器同源策略或使用其他手段规避浏览器同源策略
            return "https://unpkg.com/mxcad/dist/wasm/2d-st/" + fileName
      },
      // 加载字体的目录位置
      fontspath: self.location.origin + "/mxcad_docs/fonts",
      // 加载转换后的图纸文件
      fileUrl: self.location.origin + "/mxcad_docs/test.mxweb",
    })
    // 绘图片函数
    async function Mx_Test_DrawImage() {
    const getPoint = new MxCADUiPrPoint();
    getPoint.setMessage("\n指定插入点:");
    let pt = await getPoint.go();
    if (!pt) return;

    let imagUrl = "http://www.wenjiangs.com/wp-content/uploads/2024/docimg5/225-2czfdjz2mbx.jpg";
    mxcad.loadImage(imagUrl,(image)=>{
        if(!image ){ 
        console.log("loadImage failed");
        return;
        }
        let width = mxcad.mxdraw.viewCoordLong2Cad(100);
        let height  = (image.height /  image.width) * width;
        mxcad.drawImage((pt as any).x,(pt as any).y,width,height,0,imagUrl);
        mxcad.updateDisplay();
    });
    }
    return (<div style="height: 500px; overflow: hidden;">
      <button style="height:30px;border:1px solid #ccc;padding:0px 5px;margin-bottom:10px"
      id="myBtn" onClick={()=>Mx_Test_DrawImage()}>绘制图片</button>
      <div style="height: 400px;"><canvas id="myCanvas" style="height: 300px"></canvas></div>
    </div>)
}

:::

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文