我正在尝试获取
javascript
this 旧帖子上的代码 - 将 SVG 文件转换为纯文本格式的 x,y 坐标 - 以工作,我想知道我缺少什么 - 它看起来很简单。我把我的设置和结果放在下面。我把脚本放在这里,它的注释来自原始帖子:
“用内容编写 config.json,例如。”
{
"joinPathData": false,
"minDistance": 0.5,
"roundToNearest": 0.25,
"sampleFrequency": 0.001,
"pretty": false,
"prettyIndent": 0
}
引用:“在您的代码中,您可以像这样使用库:”
import SVGPathInterpolator from 'SVGPathInterpolator';
const svgString = `
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px"
width="792px" height="612px" viewBox="0 0 792 612" enable-background="new 0 0 792 612" xml:space="preserve">
<g>
<path id="path3789" d="M287.168,442.411
c-8.65,0-15.652,7.003-15.652,15.653
c0,8.65,7.003,15.69,15.652,15.69
s15.653-7.04,15.653-15.69
"/>
</g>
</svg>
`;
const config = {
joinPathData: false,
minDistance: 0.5,
roundToNearest: 0.25,
sampleFrequency: 0.001
};
const interpolator = new SVGPathInterpolator(config);
const pathData = interpolator.processSvg(svgString);
我按照描述毫无问题地获得了 SVGPathInterpolator 库。引用:“运行它
svgpi config.json ballons.svg ballons.js"
。(文件balloons.svg
在这里)。
而不是我发现很少的
svgpi
,我通过使用node v19.7.0
和npm
得到了nvm
,如下在各种网页上 - 实际上是apt
,这可能是错误的做法.
我在
bash
shell 中执行 node config.json my_script_01.json balloons.svg output.js
并且该过程简单地完成而没有任何输出或消息。事实上,这是一个新的结果——我刚才只得到了这么多——之前,我的设置产生了诸如 Unexpected token 'i', "import SVG"... is not valid JSON
之类的错误。也许我在正确的轨道上——我正在寻找描述 SVG 文件中矢量形状的 ASCII 纯文本 x、y 坐标(见下文)。
我可以看到 shell 环境变量,例如
NVM_INC
但我不确定这是否相关。基本 javascript
示例有效(例如来自 https://nodejs.dev/en/learn)。更复杂的脚本没有,我想我误解了如何使用示例脚本。
上面的
javascript
摘录是否预计会以某种方式构建到更大的脚本中,例如网页 - 即不是从命令行运行,而是在浏览器中运行?我也看到了这些示例脚本是如何工作的,所以也许我可以弄清楚如何制作网页。该帖子描述了一个 website,它在将 svg
文件向量转换为 x,y
坐标方面非常有效 - 因此,我希望示例脚本能够做到这一点 - 但我无法理解脚本与此相关的方式 - 我知道我可以阅读一些使用浏览器的网站代码,但我不确定要查找什么。
顺便说一句:我问过关于在 Meta S.E 上问这个问题。首先,我正在使用 that post 的最佳指导。否则,我会发表评论,因为我的声誉目前是 37。
引用的答案中的描述在某种程度上是准确的,但遗漏了一个细节(我认为)如果您使用的是 Windows 系统则无关紧要。使用 -g
标志全局安装
library
npm install -g svg-path-interpolator
可能需要 Debianoid 系统的管理权限(我从您的
apt
参考中推断)。主要目的是使脚本svg-path-interpolator/bin/svgpi.mjs
作为全局命令svgpi
对所有用户可用。看来这对您来说失败了,为什么这里是一个超出范围的问题。 (这可能会给你一些提示。)
但是不需要全局命令,直接用node.js解释器执行文件即可:
node path/to/svgpi.mjs config.json balloons.svg output.json
如果你确定你有权执行
svgpi.mjs
,你甚至可以省略对节点的调用。 (脚本的第一行是hashbang。)
path/to/svgpi.mjs config.json ballons.svg output.json
在答案中,以“在您的代码中您可以使用”开头的部分描述了一种 alternative 使用库的方法。所以你
config.json
,一个输入ballons.svg
,一个output.json
就会被写出来。在你太惊讶之前:输出不是“纯文本格式”,而是一个 JSON 文件(或者它的等效对象,同时仍然保存在一个变量中)。