P5js SVG Export
P5js SVG Export
我有一个P5js草图,它创建了一个字体,用户可以键入任何他们想要的东西。我想允许用户下载其结果的 svg/pdf(矢量)版本。到目前为止,我成功地让他们使用保存顺序下载了.jpg版本并保存了我的屏幕快照。有什么想法吗?
这是一个古老的线程,但也许我的解决方案对某人有用。要将 P5js 中的矢量图形导出到 SVG 文件,首先我使用 p5.svg.js 库中的 SVG 渲染器 - 这会将 svg 元素直接放入 HTML 文档中。导出是提取该元素的内容(通过 outerHTML 属性)并将其保存到文件中(如本文所示)。因此,例如,您的"另存为 SVG"按钮回调函数可能如下所示:
function downloadSvg()
{
let svgElement = document.getElementsByTagName('svg')[0];
let svg = svgElement.outerHTML;
let file = new Blob([svg], { type: 'plain/text' });
let a = document.createElement("a"), url = URL.createObjectURL(file);
a.href = url;
a.download = 'exported.svg';
document.body.appendChild(a);
a.click();
setTimeout(function()
{
document.body.removeChild(a);
window.URL.revokeObjectURL(url);
}, 0);
}
从谷歌搜索"p5.js svg",似乎没有内置的方法来处理p5.js中的SVG图像。
但是,该搜索会返回几个有希望的结果:
这是一个 GitHub 问题,讨论了在 p5.js 中使用 SVG。
下面是一个尝试将 SVG 支持添加到 p5.js 的项目:
p5的主要目标。SVG 是为 p5.js 提供 SVG 运行时,以便我们可以在
另一个链接到另外两个 SVG 库的讨论。
小五。SVG库听起来特别有前途。我建议你尝试一些东西,如果你遇到困难,可以发布一个MCVE。
一个名为
canvas-sketch
的新软件包似乎可以解决这个问题。他们也有很多关于p5的例子.js。
const canvasSketch = require('canvas-sketch')
const p5 = require('p5')
const settings = {
p5: { p5 },
// Turn on a render loop
animate: true,
}
canvasSketch(() => {
// Return a renderer, which is like p5.js 'draw' function
return ({ p5, time, width, height }) => {
// Draw with p5.js things
p5.background(0)
p5.fill(255)
p5.noStroke()
const anim = p5.sin(time - p5.PI / 2) * 0.5 + 0.5
p5.rect(0, 0, width * anim, height)
};
}, settings)
如果您在全球范围内使用 p5,则还有一个示例称为 animated-p5.js
相关文章:
- D3在一个调用中绘制不同的SVG形状,没有可见性
- 如何使用javascript从主svg对象动态创建svg视图框
- 如何更改<svg>标记为<img>用js标记
- 锚点元素不't使用svg时,请打开EDGE上的href
- 带有填充属性的SVG矩形显示在包含元素的上方插入框阴影
- 使用onclick绘制SVG路径
- SVG/JavaScript:尝试选择和更改多边形点
- 顺时针旋转Svg元件
- 禁用SVG拖动
- 在select元素中显示highchart dashstyle(svg)
- 在D3.js中,有没有任何方法可以将x和y方向上的滚动事件绑定到平移svg
- 缩放Raphael/SVG容器以适应所有内容
- JavaScript-动态SVG-onload属性-未触发事件
- 设置动画时,SVG/Raphael大圆圈会变形
- 使用SVG和JavaScript创建波浪动画
- Canvas+svg路径动画,在路径中的特定点暂停一段时间,然后继续
- D3.js生成有效的SVG,但不显示任何内容
- SVG xml to image
- P5js SVG Export
- AngularJS export SVG to PDF