You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为SVG中线条间的区域添加填充色?

问题描述

我有一个包含多条path的SVG图像,想要在图像内部、仅在黑色线条围成的区域添加背景填充色。请问有合适的工具推荐吗?目前我考虑合并路径并创建polygon,但认为这不是一个好方案。

SVG代码

<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="100%" viewBox="0 0 285 261" enable-background="new 0 0 285 261" xml:space="preserve">
<path fill="none" opacity="1.000000" stroke="#000000" stroke-linecap="round" stroke-linejoin="round"
      stroke-width="2.000000"
      d="
M164.000000,33.500000
    C164.833328,43.333332 165.675537,53.165928 166.498123,63.000156
    C168.171005,82.999634 169.910492,102.993973 171.474167,123.002022
    C172.606567,137.491669 173.448700,152.003769 174.514191,166.498962
    C175.617111,181.503647 176.883545,196.496338 177.976624,211.501709
    C178.449387,217.991547 178.666656,224.500000 178.999985,231.000000
"/>
    <path fill="none" opacity="1.000000" stroke="#000000" stroke-linecap="round" stroke-linejoin="round"
          stroke-width="2.000000"
          d="
M205.000000,33.500000
    C211.705887,48.559238 215.482666,64.496674 218.985229,80.503227
    C226.634079,115.458031 230.594208,150.944061 233.962753,186.503525
    C235.034225,197.814301 235.715897,209.163452 236.456482,220.502838
    C236.596710,222.649948 236.929367,224.891998 235.656830,227.817383
    C162.666672,234.509201 89.333336,235.739029 15.502701,228.046219
    C15.894063,223.319000 16.197031,219.659500 16.499998,216.000000
"/>
    <path fill="none" opacity="1.000000" stroke="#000000" stroke-linecap="round" stroke-linejoin="round"
          stroke-width="3.000000"
          d="
M48.500000,33.000000
    C100.500534,33.000000 152.501068,33.000000 204.650604,33.000000
    C205.677261,27.124668 203.990173,21.838848 204.576874,16.250000
    C152.500000,16.250000 101.000000,16.250000 49.660480,16.250000
    C48.325832,18.359861 48.603340,20.451437 48.482582,22.498972
    C48.084709,29.245363 46.420258,35.630894 44.107647,42.038849
    C33.721039,70.818932 28.822332,100.874130 24.570915,131.010010
    C21.013802,156.224365 18.429388,181.560898 16.995337,206.999741
    C16.863691,209.335037 16.731928,211.673782 16.478987,213.997711
    C16.282843,215.799805 17.442259,215.521439 18.500000,215.500000
"/>
    <path fill="none" opacity="1.000000" stroke="#000000" stroke-linecap="round" stroke-linejoin="round"
          stroke-width="3.000000"
          d="
M164.000000,17.000000
    C164.000000,22.166666 164.000000,27.333334 164.000000,32.500000
"/>
</svg>

效果预览

My object


解决方案与工具推荐

一、可视化工具推荐

  • Inkscape:免费开源的矢量编辑工具,操作简单。导入SVG后选中所有路径,用「路径 → 合并」(快捷键Ctrl++)将多条路径合并为闭合路径,直接设置填充色即可。若合并后有多余片段,可使用「路径 → 简化」或节点工具调整。
  • Adobe Illustrator:专业级矢量软件。导入SVG后,选中所有路径执行「对象 → 路径 → 轮廓化描边」,再通过「路径查找器」面板的「联集」功能合并成闭合形状,之后就能设置填充色。
  • Figma:在线设计工具,无需安装。导入SVG后选中所有路径,右键选择「合并选区」,通过右侧面板直接设置填充颜色,操作直观。

二、手动修改SVG代码

如果不想依赖工具,可直接修改代码:

  1. 先将所有<path>的fill="none"替换为目标填充色(如fill="#f0e68c"),但这种方式可能因路径未闭合导致填充异常。
  2. 更稳妥的方法是将所有路径的d属性内容拼接成一条路径,确保首尾坐标一致,最后添加闭合指令Z,再设置fill属性。例如把所有路径的指令合并,去掉重复的起始标记,补充闭合指令。

三、注意事项

  • 合并路径前确认所有线条能形成连续闭合区域,避免填充范围超出预期。
  • 若路径描边宽度不同,合并前建议统一宽度,防止形状变形。

内容的提问来源于stack exchange,提问作者Lansana Diomande

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 11:15:38