From fb5d73aaf3e6d02f56462b313125ecb34b401b4d Mon Sep 17 00:00:00 2001 From: Daniil Date: Thu, 5 Oct 2017 16:44:02 +0300 Subject: [PATCH] toPNG method fix (#38) * Changed data conversion from toDataURL to toBlob (for making able to download files larger then 2MB) * Fixed SVG loading (using blobs) * Fixed syntax --- src/app.js | 5 +++-- src/visual/Paper.js | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/app.js b/src/app.js index 94f70af..c852fed 100644 --- a/src/app.js +++ b/src/app.js @@ -75,7 +75,8 @@ processButton('btn-generate', () => { processButton('btn-get-svg', () => { const element = document.createElement('a'); - element.setAttribute('href', `data:text/plain;charset=utf-8,${diagram.paper.getSVG()}`); + const blob = new Blob([diagram.paper.getSVG()], { type: 'text/plain;charset=utf-8' }); + element.setAttribute('href', window.URL.createObjectURL(blob)); element.setAttribute('download', 'diagram.svg'); element.style.display = 'none'; document.body.appendChild(element); @@ -86,7 +87,7 @@ processButton('btn-get-svg', () => { processButton('btn-get-png', () => { diagram.paper.getPNG((data) => { const element = document.createElement('a'); - element.setAttribute('href', data); + element.setAttribute('href', window.URL.createObjectURL(data)); element.setAttribute('download', 'diagram.png'); element.style.display = 'none'; document.body.appendChild(element); diff --git a/src/visual/Paper.js b/src/visual/Paper.js index d75d42c..80abeaf 100644 --- a/src/visual/Paper.js +++ b/src/visual/Paper.js @@ -106,7 +106,7 @@ export default class Paper extends joint.dia.Paper { context.fillStyle = opts.bgrColor || '#FFFFFF'; context.fillRect(0, 0, canvas.width, canvas.height); context.drawImage(image, 0, 0); - callback(canvas.toDataURL('image/png')); + canvas.toBlob(callback, 'image/png'); }; }