Skip to content

Instantly share code, notes, and snippets.

@liubiantao
Last active November 26, 2020 13:52
Show Gist options
  • Save liubiantao/efba82406e048ac0d56c977b7395eb32 to your computer and use it in GitHub Desktop.
Save liubiantao/efba82406e048ac0d56c977b7395eb32 to your computer and use it in GitHub Desktop.
canvas 转换成 svg
// ==UserScript==
// @name canvas 转换成 svg
// @namespace https://gist.github.com/liubiantao
// @version 0.3
// @description 把网页中的 canvas 转换成 svg
// @author liubiantao
// @match https://www.amap.com/
// @grant GM_addStyle
// @require https://cdn.jsdelivr.net/npm/[email protected]/canvas2svg.min.js
// ==/UserScript==
(function() {
'use strict';
GM_addStyle(`
#canvas2svg {
position: fixed;
bottom: 20%;
left: 1px;
border: 1px solid #00b5ff;
padding: 3px;
font-size: 12px;
cursor: pointer;
border-radius: 3px;
z-index: 111111;
color: #00b5ff;
background: #00b5ff1f;
}
`)
function canvas2svg(){
const gls = document.querySelectorAll('canvas')
gls.forEach(gl => {
const ctx = new C2S(1500, 1500);
const glctx = gl.getContext('webgl') || gl.getContext('2d')
ctx.drawImage(glctx.canvas, 0, 0);
const svg = ctx.getSerializedSvg(true);
console.log(svg)
})
}
function addButton() {
const btn = document.createElement('div')
btn.innerText = 'canvas2svg'
btn.id = 'canvas2svg'
document.body.append(btn)
document.querySelector('#canvas2svg').addEventListener('click', canvas2svg)
}
addButton()
})();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment