svg - 如何使用 Sketch 插件导出干净的 SVG,无需遮罩或覆盖。草图 49.3
问题描述
当我将 MSSymbolInstances 导出为 SVG 时,我总是在 SVG 代码中得到这一行。
<g id="????/Fill/Gray-3" mask="url(#mask-2)" fill="#6A6A78">
直到我手动编辑上面的填充并将“#1D1F20”更改为“none”,我才能在我的程序中使用 SVG。有没有办法在没有这个特定的填充或遮罩的情况下导出 SVG。
我为此尝试了几种方法:-
循环遍历所有层,如果它是 mssymbolinstance,则使用新的草图 API 导出草图.export(layer, options).. 这不起作用。
尝试复制图层将其转换为组,然后使用 group.export 如下所示:
var duplicates = layers[j].duplicate(); var group = duplicates.detachByReplacingWithGroup(); 组=新草图。组(组);group.export({ "formats": "svg", output : outputPath, //'use-id-for-name' : true, }); group.remove();
这也不起作用,因为输出 SVG 都具有带有一些填充颜色覆盖的蒙版。
- 这种方法与 2 相同。这里我只是在将图层转换为组并导出之前不复制图层,但是这还有其他缺点。-> 首先它会删除符号实例,从而更改草图文档。-> 其次,我必须多次运行它并且经常抛出关于 -[NSNull name]: unrecognized selector sent to instance 0x7fffa6e3ecc0 的错误
请帮忙。
解决方案
尝试使用我制作的名为svgood的 npm 包。它删除了defs和g(它们往往包含掩码s)元素并将路径元素浮动到svg的顶层。我有一些使它更有用的计划,但如果我可以添加一些可以使它更好地适合您的用例的东西,请告诉我。
推荐阅读
- c# - 如何在 Unity 中创建列表?
- flutter - RxDart 行为主题混淆
- java - 如何使用 Spring Boot WebClient 按名称获取选择的 JSON 字段?
- python - 如何迭代字符串?
- python - 为什么在 python f-strings 中使用双花括号而不是反斜杠?
- c - 表达式必须是指向完整对象类型的指针,为什么在这种情况下会出现此错误?
- spring-cloud-sleuth - 在 Zipkin 中找不到可导出的 Zipkin/Brave/Spring-Cloud-Sleuth Span
- angular - Angular 9 到 10 升级 - Typescript 编译警告:*.ngtypecheck.ts
- r - 使用非“选择”(土地覆盖)数据实施 mlogit
- amazon-web-services - 一个 lambda 的 InvalidChiperException,但不是另一个