Получение высоты и ширины изображения из base64 Строка изображения в GoJS
Я пытаюсь получить высоту и ширину изображения из строкового представления base64 изображения, и я использую GoJS.
В конечном итоге я хочу добавить это изображение в PDF-файл с помощью библиотеки jspdf.
Вот что я сделал до сих пор:
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 визуальная студия intellisense показывает "Свойство height", а "width" не существует для типа "string".
Как я могу получить свойство высоты и ширины изображения?
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;