• 保存 dom/html 为图片


    保存 dom/html 为图片

    • 可以使用 html2canvas + canvas2image
    • 或者使用 dom-to-image
    • 或者使用 html-to-image
    <script src="https://unpkg.com/html2canvas@1.0.0-rc.5/dist/html2canvas.js"></script>
    <script src="https://www.jqueryscript.net/demo/Capture-HTML-Elements-Screenshot/canvas2image.js"></script>
    <script src="https://unpkg.com/dom-to-image@2.6.0/dist/dom-to-image.min.js">`dom 转图片`</script>
    <div id="root">一些文本</div>
    
    // 貌似不支持 iframe => https://github.com/bubkoo/html-to-image/issues/36
    const node = document.getElementById(`root`)
    
    { // 保存图片方法1 node=>canvas=>image
      html2canvas(node).then(function(canvas) {
        document.body.appendChild(canvas);
        Canvas2Image.saveAsImage(document.querySelector(`canvas`), canvas.width, canvas.height, `png`, `test`)
      });
    }
    
    { // 保存图片方法2  node=>image
      // const scale = 1200 / node.offsetWidth; // 生成固定宽度的图像
      const scale = 1.5;
      domtoimage.toPng(node, {
      height: node.offsetHeight * scale,
       node.offsetWidth * scale,
      style: {
      transform: "scale(" + scale + ")",
      transformOrigin: "top left",
       node.offsetWidth + "px",
      height: node.offsetHeight + "px"
      }}).then(function (dataUrl) {
          var link = document.createElement('a');
          link.download = 'my-image-name.png';
          link.href = dataUrl;
          link.click();
      });
    }
    
    { // 保存图片到剪贴板
      domtoimage.toBlob(node).then(async function (blob) {
        try {
          await navigator.clipboard.write([
            new ClipboardItem({
              [blob.type]: blob
            })
          ]);
          console.log('Image copied.');
        } catch(err) {
          console.error(err.name, err.message);
        }
      });
    }
    
  • 相关阅读:
    ASP.NET上传文件的三种基本方法
    实例分析 equals 和 ==
    如何保证Web Service的安全
    Winform动态显示图片,数据流方式
    C# 文件保存到数据库中或者从数据库中读取文件
    简说Session
    NotifyIcon的简单使用
    c# Invoke和BeginInvoke 区别
    DataGridView 的 CurrentCellDirtyStateChanged事件用法
    十种发送邮件的方式
  • 原文地址:https://www.cnblogs.com/daysme/p/12704068.html
Copyright © 2020-2023  润新知