diff --git a/logo/svg2png_converter/converter.js b/logo/svg2png_converter/converter.js new file mode 100644 index 0000000..dda9479 --- /dev/null +++ b/logo/svg2png_converter/converter.js @@ -0,0 +1,48 @@ +let can = document.createElement("canvas"); +let ctx = can.getContext("2d"); +let result; +const renderButton = document.querySelector("#render"); +const downloadButton = document.querySelector("#download"); + +function handleFileSelect(e) { + const files = e.target.files; + if (!files || !files.length) return; + const file = files[0]; + if (file.type !== "image/svg+xml") return; + + const reader = new FileReader(); + reader.onload = (readerEvent) => { + renderSVG(readerEvent.target.result); + } + + reader.readAsDataURL(file); +} + +function renderSVG(base64SVG) { + const image = new Image(); + const preview = document.querySelector("#preview"); + + image.onload = function () { + can.setAttribute("width", this.width); + can.setAttribute("height", this.height); + ctx.drawImage(image, 0, 0, this.width, this.height); + + preview.src = result = can.toDataURL("image/png"); + downloadButton.disabled = false; + } + + image.src = base64SVG; +} + +function downloadURI(_uri, _name) { + let link = document.createElement("a"); + link.download = "render.png"; + link.href = result; + document.body.appendChild(link); + link.click(); + document.body.removeChild(link); + delete link; +} + +document.querySelector('#file_input').addEventListener('change', handleFileSelect, false); +downloadButton.addEventListener("click", downloadURI); diff --git a/logo/svg2png_converter/index.html b/logo/svg2png_converter/index.html new file mode 100644 index 0000000..73343da --- /dev/null +++ b/logo/svg2png_converter/index.html @@ -0,0 +1,29 @@ + + + + + + + + Document + + + + +
+
+ +
+ + + + +
+ + + + + \ No newline at end of file