在GoJS中从base64图像字符串获取图像高度和宽度

时间:2018-08-31 05:55:43

标签: javascript angular base64 gojs

我正在尝试从图像的base64字符串表示形式获取图像的高度和宽度,而我正在使用GoJS。

我最终想要做的是使用jspdf库将该图像添加到PDF。

这是我到目前为止所做的:

download() {
    let imgData = this.diagram.makeImageData({background: "white", returnType: "string"}); 
    let pdf = new jspdf('p', 'mm', 'a4'); // A4 size page of PDF  
      var position = 0;
      var imgWidth = imgData.width; //Reading width from Image Data
      var imgHeight = imgData.height; //Reading height from Image Data
      pdf.setFontSize(30);
      pdf.text("Diagram", 100, 20, 'center');
      pdf.addImage(imgData, 'PNG', 1, 25, position, imgWidth, imgHeight);  
      pdf.save("Diagram.pdf');
  }

在imgData.width和imgData.height中,Visual Studio intellisense显示“类型'string'上不存在属性'height'和'width'。

如何获取图像的高度和宽度属性?

1 个答案:

答案 0 :(得分:1)

使用该图像数据创建一个 HTMLImageElement ,然后在加载后获取其 naturalWidth naturalHeight

var imgData = myDiagram.makeImageData(. . .);
var img = document.createElement("img");
img.addEventListener('load', function(e) {
  console.log(img.naturalWidth + " " + img.naturalHeight);
});
img.src = imgData;