【问题标题】:html2canvas bigger size of download imagehtml2canvas 更大尺寸的下载图片
【发布时间】:2022-01-21 04:06:08
【问题描述】:

我已经设置了 html2canvas,这样我就可以编辑文本,然后将其下载为图像,效果很好,但大小受限于其容器的宽度。

如果我设置画布宽度和高度,渲染变为该大小,但它是黑色的。我做错了什么?

这里是JSfiddle,一切正常,但如果你添加宽度和高度(目前已评论),渲染图片将变黑。

JavaScript

html2canvas(document.getElementById("imagewrap"), {
  onrendered: function(canvas) {
    canvas.className = "html2canvas";
    // canvas.width = "1080";
    // canvas.height = "1920";
    document.getElementById("canvasWrapper").appendChild(canvas);
    var image = canvas.toDataURL("image/png");
    document.getElementById("downloadLink").href = image;
  },
  useCORS: true
});

【问题讨论】:

    标签: javascript html2canvas


    【解决方案1】:

    创建新的<canvas> 元素并设置widthheight 属性后,使用drawImage() 方法在画布上绘制图像[1]

    html2canvas(document.getElementById("imagewrap"), {
      onrendered: function(canvas) {
        var  _canvas = document.createElement("canvas");
        _canvas.setAttribute('width', 1080);
        _canvas.setAttribute('height', 1920);
        var ctx = _canvas.getContext('2d');
        ctx.drawImage(canvas, 0, 0, canvas.width, canvas.height, 0, 0, 1080, 1920);
        var dataURL = _canvas.toDataURL();  
        document.getElementById("canvasWrapper").appendChild(_canvas);
        var image = _canvas.toDataURL("image/png");
        document.getElementById("downloadLink").href = image;
      },
      useCORS: true
    });
    

    在不影响您当前在 JSFiddle 上的工作的情况下复制下面的 JavaScript 代码,然后单击“下载”按钮下载图像。然后查看下载图像的属性和内容:


    1 - Html2Canvas Resize

    【讨论】:

    • 感谢您的帮助。这确实放大了图像,但分辨率被放大了(它很模糊)。我会尝试找出是否有一些分辨率参数(我想我在文档中看到过)并在这里报告。
    • 我认为这个问题可能是一个新问题的主题。
    • 您必须更改scale 参数。 Related
    • 是的,但对于未来的任何人来说,这将是一个不错的小完整解决方案 :) 我经历了 40 多个示例,直到我调整图像 + 可编辑文本 = 可下载图像
    • 比例或 dpi 似乎都没有帮助。我把它们放在 onrendered 函数之前,结果是一样的。
    猜你喜欢
    • 2021-05-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-08
    • 2021-03-07
    • 1970-01-01
    • 2014-05-14
    相关资源
    最近更新 更多