如何使用php或JavaScript从svg中删除白色内嵌

如何使用php或JavaScript从svg中删除白色内嵌,javascript,php,svg,Javascript,Php,Svg,我想知道我们如何从这个具有透明背景的svg中删除白色内嵌。在png的情况下,我们有像素和使用循环的像素数据,我们可以针对白色像素删除它们。但是在svg中,我们没有像素,所以不知道如何定位这些白色填充 SVG下载链接示例: 更新:添加了单字母代码 更新2:将“填充”属性设置为“无”也更改了不透明度 SVG文件只是文本。 使用正则表达式的一种快速且非常肮脏的方法: preg_replace(“/(/i)”,file_get_contents(uu DIR_u.'./myfile.svg”

我想知道我们如何从这个具有透明背景的svg中删除白色内嵌。在png的情况下,我们有像素和使用循环的像素数据,我们可以针对白色像素删除它们。但是在svg中,我们没有像素,所以不知道如何定位这些白色填充

SVG下载链接示例:

更新:添加了单字母代码


更新2:将“填充”属性设置为“无”也更改了不透明度


SVG文件只是文本。 使用正则表达式的一种快速且非常肮脏的方法:

preg_replace(“/(/i)”,file_get_contents(uu DIR_u.'./myfile.svg”);
但是,使用正则表达式解析XML并不是最好的方法,如果您在任何其他文件中的白色形状没有用fill:rgb(100%,100%,100%)表示为路径,则会出现这种情况

理想情况下,您会:

  • 使用SimpleXML或DOMDocument或第三方库将SVG文件作为XML文件打开
  • 查找样式中声明了填充的所有路径
  • 查看填充值是否使用所有不同的语法(rgb(100%,100%,100%)和#fff等)计算为白色
  • 如果是,请拆下该元件
    • SVG文件只是文本。 使用正则表达式的一种快速且非常肮脏的方法:

      preg_replace(“/(/i)”,file_get_contents(uu DIR_u.'./myfile.svg”);
      
      但是,使用正则表达式解析XML并不是最好的方法,如果您在任何其他文件中的白色形状没有用fill:rgb(100%,100%,100%)表示为路径,则会出现这种情况

      理想情况下,您会:

      • 使用SimpleXML或DOMDocument或第三方库将SVG文件作为XML文件打开
      • 查找样式中声明了填充的所有路径
      • 查看填充值是否使用所有不同的语法(rgb(100%,100%,100%)和#fff等)计算为白色
      • 如果是,请拆下该元件

      在您问题中的代码中,8中的孔是一个不同的路径。为了使其成为一个真正的孔,我通过组合d属性合并了两条路径

      但是,它可能不适用于代码中的所有路径。请尝试一下,让我知道它是如何工作的

      请注意,在合并2D属性时,我已将初始m comand更改为m

      另外:在这种情况下,填充规则=“evenodd”不是必需的,但它可能有助于其他路径


      在您问题中的代码中,8中的孔是一个不同的路径。为了使其成为一个真正的孔,我通过组合d属性合并了两条路径

      但是,它可能不适用于代码中的所有路径。请尝试一下,让我知道它是如何工作的

      请注意,在合并2D属性时,我已将初始m comand更改为m

      另外:在这种情况下,填充规则=“evenodd”不是必需的,但它可能有助于其他路径

      
      

      我怀疑您可以通过在svg元素中添加fill rule=“evenodd”来修复它。如果这不能解决您的问题,您可以编辑您的问题并为一个字母/数字添加代码吗?@enxaneta我注意到
      fill rule=“evenodd”
      默认情况下位于文件can u check i添加的单字母代码中。thanks@user889030我想他们让孩子们早点出来了,我还花时间写了一个问题,内容很好,格式很好,细节也很详细,因为我忽略了一个简单的错误,我在发帖后5分钟内就得到了3张反对票。我认为我比你投了更高的票ught这是一个写得很好的问题,其他人可能会觉得有用。@CraigStanfield ya他们应该知道这不是一个英语学习论坛,在那里可以通过投票来强调语法错误。我怀疑你可以通过添加fill rule=“evenodd”来修复它如果这不能解决您的问题,您可以编辑您的问题并为一个字母/数字添加代码吗?@enxaneta我注意到
      fill rule=“evenodd”
      默认情况下位于文件can u check i添加的单字母代码中。thanks@user889030我想他们让孩子们早点出来了,我还花时间写了一个问题,内容很好,格式很好,细节也很详细,因为我忽略了一个简单的错误,我在发帖后5分钟内就得到了3张反对票。我认为我比你投了更高的票虽然这是一个写得很好的问题,其他人可能会觉得有用。@CraigStanfield ya他们应该知道,它不是一个英语学习论坛,在那里可以通过投票来强调语法错误,因为语法错误不会像现在这样起作用。
      fill
      默认为黑色。因此,删除它只会使漏洞从白色变为黑色。您需要将其替换为
      fill=“none”
      。这将无法正常工作。
      fill
      默认为黑色。因此,删除它只会使孔从白色变为黑色。您需要将其替换为
      fill=“none”
      。酷,你可以共享逻辑或一些可以用来折合两条路径的代码吗?谢谢。还有一个愚蠢的问题svg文件有很多路径。我想知道如何找到两条路径相互重叠且需要合并的对。你将二维属性连接起来,将初始的m comand更改为m。在我的回答中,我添加了一行b重新阅读以便更好地理解它。还有一个问题,我们如何找到svg路径的宽度和高度。为此,您可以使用getBBox()方法。这将返回一个位置(x,y)和大小(宽度,高度)的对象在pathcool的边界框中,您是否可以共享逻辑或一些代码,用于折合两条路径。谢谢。还有一个愚蠢的问题svg文件有很多路径。我想知道如何找到两条路径重叠且需要合并的对。您将二维属性连接起来,将初始的m comand更改为m。在我的a中回答:我已经添加了一个换行符,以便您更好地理解它。还有一个问题,我们如何找到svg路径的宽度和高度。为此,您可以使用getBBox()方法。这是返回的
      <?xml version="1.0" encoding="UTF-8"?>
      <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="771pt" height="310pt" viewBox="0 0 771 310" version="1.1">
      <g>
      
         <path
            id="path94"
            d="m 68.378906,235.66406 -0.265625,0.0117 -0.464843,0.10547 -0.214844,0.0625 -0.203125,0.0664 -0.183594,0.0859 -0.167969,0.082 -0.132812,0.082 -0.128906,0.0859 -0.117188,0.0625 -0.08594,0.0664 -0.06641,0.0508 -0.05078,0.0508 -0.03125,0.0156 -0.01563,0.0195 -0.148437,0.16406 -0.152344,0.16797 -0.117188,0.18359 -0.09766,0.1836 -0.167969,0.34765 -0.09766,0.33203 -0.07031,0.28516 -0.01563,0.13281 -0.01953,0.0977 -0.01172,0.10156 v 0.11719 l 0.01172,0.29687 0.05078,0.28516 0.06641,0.25 0.08594,0.21484 0.06641,0.16797 0.06641,0.13282 0.05078,0.0664 0.01563,0.0352 0.183594,0.19922 0.199219,0.18359 0.214843,0.16797 0.214844,0.13281 0.203125,0.0977 0.148438,0.0664 0.06641,0.0312 0.05078,0.0195 0.01563,0.0195 h 0.01953 l -0.386718,0.11328 -0.3125,0.14844 -0.28125,0.1875 -0.234375,0.16406 -0.183594,0.16406 -0.136719,0.13672 -0.06641,0.082 -0.03125,0.0156 v 0.0195 l -0.183594,0.30078 -0.148437,0.3125 -0.101563,0.30078 -0.06641,0.30078 -0.03516,0.26563 -0.01563,0.11328 v 0.10156 l -0.01563,0.0664 v 0.11718 l 0.01563,0.26953 0.03516,0.26172 0.05078,0.25391 0.06641,0.24609 0.164063,0.41797 0.08594,0.19922 0.09766,0.16797 0.101562,0.16406 0.08203,0.13672 0.101563,0.11719 0.06641,0.0977 0.06641,0.082 0.08203,0.082 0.01563,0.0195 0.199218,0.18359 0.21875,0.14844 0.234375,0.13281 0.234375,0.11719 0.214844,0.082 0.234375,0.0859 0.445313,0.11719 0.203125,0.0469 0.179687,0.0352 0.167969,0.0156 0.148437,0.0156 0.117188,0.0195 h 0.167969 l 0.316406,-0.0195 0.285156,-0.0312 0.28125,-0.0508 0.265625,-0.0508 0.230469,-0.082 0.234375,-0.082 0.21875,-0.0859 0.179687,-0.10156 0.167969,-0.0977 0.152344,-0.0859 0.117187,-0.0781 0.117188,-0.0859 0.07813,-0.0508 0.05078,-0.0469 0.05078,-0.0508 0.183594,-0.20313 0.167969,-0.19531 0.128906,-0.20312 0.117188,-0.21485 0.117187,-0.20312 0.08594,-0.21485 0.117187,-0.3789 0.04687,-0.1875 0.03516,-0.16407 0.01563,-0.15234 0.01953,-0.11719 0.01563,-0.0977 v -0.14844 l -0.01563,-0.38672 -0.07031,-0.34766 -0.09766,-0.3164 -0.101563,-0.26563 -0.09766,-0.21875 -0.101562,-0.16406 -0.06641,-0.0977 -0.01953,-0.0195 v -0.0156 l -0.230469,-0.26563 -0.25,-0.23437 -0.265625,-0.1836 -0.25,-0.16796 -0.230468,-0.11329 -0.203125,-0.0859 -0.06641,-0.0312 -0.05078,-0.0195 -0.03125,-0.0117 H 70.3125 l 0.300781,-0.13672 0.246094,-0.14844 0.21875,-0.15234 0.183594,-0.14844 0.128906,-0.13281 0.101563,-0.0977 0.06641,-0.0703 0.01953,-0.0312 0.148438,-0.23438 0.101562,-0.23437 0.07813,-0.23047 0.05078,-0.23438 0.03516,-0.18359 0.01953,-0.14844 v -0.13281 l -0.01953,-0.23437 -0.01563,-0.21875 -0.117188,-0.41407 -0.148437,-0.36328 -0.167969,-0.32031 -0.167969,-0.24609 -0.08203,-0.10157 -0.06641,-0.10156 -0.148438,-0.14844 -0.183594,-0.15234 -0.183593,-0.14844 -0.199219,-0.11719 -0.199219,-0.0977 -0.402344,-0.15235 -0.398437,-0.0977 -0.164063,-0.0508 -0.167968,-0.0156 -0.152344,-0.0195 -0.132813,-0.0117 -0.09766,-0.0195 h -0.148437 z m 0,0"
            style="fill:#ff00f3;fill-opacity:1;fill-rule:evenodd;stroke:none" />
         <path
            id="path218"
            d="m 68.542969,236.8125 h 0.136719 l 0.28125,0.0156 0.269531,0.0625 0.214844,0.0859 0.199218,0.0977 0.152344,0.10156 0.113281,0.082 0.08203,0.0703 0.01953,0.0156 0.183594,0.21484 0.132812,0.21875 0.09766,0.21485 0.07031,0.19922 0.03125,0.18359 0.03516,0.14844 v 0.13672 l -0.01953,0.26171 -0.06641,0.25391 -0.08203,0.21484 -0.101562,0.1836 -0.09766,0.14844 -0.08594,0.10156 -0.06641,0.082 -0.01563,0.0156 -0.199219,0.16797 -0.234375,0.13282 -0.214844,0.082 -0.214843,0.0664 -0.203125,0.0352 -0.148438,0.0156 -0.09766,0.0195 h -0.03516 l -0.300782,-0.0195 -0.265625,-0.0664 -0.234375,-0.082 -0.199218,-0.0977 -0.148438,-0.0859 -0.117187,-0.082 -0.08594,-0.0664 -0.01172,-0.0195 -0.167968,-0.19921 -0.132813,-0.23047 -0.08594,-0.21875 -0.06641,-0.21485 -0.03125,-0.18359 -0.01953,-0.14844 -0.01172,-0.10156 v -0.0352 l 0.01172,-0.26172 0.06641,-0.23437 0.08594,-0.21875 0.09766,-0.18359 0.08594,-0.14844 0.08203,-0.11719 0.06641,-0.0664 0.01953,-0.0156 0.214844,-0.18359 0.214844,-0.13282 0.234375,-0.0859 0.214844,-0.0625 0.199218,-0.0352 z m 0,0"
            style="fill:#ffffff;fill-opacity:0;fill-rule:evenodd;stroke:none" />
      </g>
      </svg>
      
      <?xml version="1.0" encoding="UTF-8"?>
      <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="771pt" height="310pt" viewBox="0 0 771 310" version="1.1">
      <g id="surface1">
      
          <path
             id="path94"
             d="m 68.378906,235.66406 -0.265625,0.0117 -0.464843,0.10547 -0.214844,0.0625 -0.203125,0.0664 -0.183594,0.0859 -0.167969,0.082 -0.132812,0.082 -0.128906,0.0859 -0.117188,0.0625 -0.08594,0.0664 -0.06641,0.0508 -0.05078,0.0508 -0.03125,0.0156 -0.01563,0.0195 -0.148437,0.16406 -0.152344,0.16797 -0.117188,0.18359 -0.09766,0.1836 -0.167969,0.34765 -0.09766,0.33203 -0.07031,0.28516 -0.01563,0.13281 -0.01953,0.0977 -0.01172,0.10156 v 0.11719 l 0.01172,0.29687 0.05078,0.28516 0.06641,0.25 0.08594,0.21484 0.06641,0.16797 0.06641,0.13282 0.05078,0.0664 0.01563,0.0352 0.183594,0.19922 0.199219,0.18359 0.214843,0.16797 0.214844,0.13281 0.203125,0.0977 0.148438,0.0664 0.06641,0.0312 0.05078,0.0195 0.01563,0.0195 h 0.01953 l -0.386718,0.11328 -0.3125,0.14844 -0.28125,0.1875 -0.234375,0.16406 -0.183594,0.16406 -0.136719,0.13672 -0.06641,0.082 -0.03125,0.0156 v 0.0195 l -0.183594,0.30078 -0.148437,0.3125 -0.101563,0.30078 -0.06641,0.30078 -0.03516,0.26563 -0.01563,0.11328 v 0.10156 l -0.01563,0.0664 v 0.11718 l 0.01563,0.26953 0.03516,0.26172 0.05078,0.25391 0.06641,0.24609 0.164063,0.41797 0.08594,0.19922 0.09766,0.16797 0.101562,0.16406 0.08203,0.13672 0.101563,0.11719 0.06641,0.0977 0.06641,0.082 0.08203,0.082 0.01563,0.0195 0.199218,0.18359 0.21875,0.14844 0.234375,0.13281 0.234375,0.11719 0.214844,0.082 0.234375,0.0859 0.445313,0.11719 0.203125,0.0469 0.179687,0.0352 0.167969,0.0156 0.148437,0.0156 0.117188,0.0195 h 0.167969 l 0.316406,-0.0195 0.285156,-0.0312 0.28125,-0.0508 0.265625,-0.0508 0.230469,-0.082 0.234375,-0.082 0.21875,-0.0859 0.179687,-0.10156 0.167969,-0.0977 0.152344,-0.0859 0.117187,-0.0781 0.117188,-0.0859 0.07813,-0.0508 0.05078,-0.0469 0.05078,-0.0508 0.183594,-0.20313 0.167969,-0.19531 0.128906,-0.20312 0.117188,-0.21485 0.117187,-0.20312 0.08594,-0.21485 0.117187,-0.3789 0.04687,-0.1875 0.03516,-0.16407 0.01563,-0.15234 0.01953,-0.11719 0.01563,-0.0977 v -0.14844 l -0.01563,-0.38672 -0.07031,-0.34766 -0.09766,-0.3164 -0.101563,-0.26563 -0.09766,-0.21875 -0.101562,-0.16406 -0.06641,-0.0977 -0.01953,-0.0195 v -0.0156 l -0.230469,-0.26563 -0.25,-0.23437 -0.265625,-0.1836 -0.25,-0.16796 -0.230468,-0.11329 -0.203125,-0.0859 -0.06641,-0.0312 -0.05078,-0.0195 -0.03125,-0.0117 H 70.3125 l 0.300781,-0.13672 0.246094,-0.14844 0.21875,-0.15234 0.183594,-0.14844 0.128906,-0.13281 0.101563,-0.0977 0.06641,-0.0703 0.01953,-0.0312 0.148438,-0.23438 0.101562,-0.23437 0.07813,-0.23047 0.05078,-0.23438 0.03516,-0.18359 0.01953,-0.14844 v -0.13281 l -0.01953,-0.23437 -0.01563,-0.21875 -0.117188,-0.41407 -0.148437,-0.36328 -0.167969,-0.32031 -0.167969,-0.24609 -0.08203,-0.10157 -0.06641,-0.10156 -0.148438,-0.14844 -0.183594,-0.15234 -0.183593,-0.14844 -0.199219,-0.11719 -0.199219,-0.0977 -0.402344,-0.15235 -0.398437,-0.0977 -0.164063,-0.0508 -0.167968,-0.0156 -0.152344,-0.0195 -0.132813,-0.0117 -0.09766,-0.0195 h -0.148437 z m 0,0"
             style="fill:#ff00f3;fill-opacity:1;fill-rule:evenodd;stroke:none" />
          <path
             id="path218"
             d="m 68.542969,236.8125 h 0.136719 l 0.28125,0.0156 0.269531,0.0625 0.214844,0.0859 0.199218,0.0977 0.152344,0.10156 0.113281,0.082 0.08203,0.0703 0.01953,0.0156 0.183594,0.21484 0.132812,0.21875 0.09766,0.21485 0.07031,0.19922 0.03125,0.18359 0.03516,0.14844 v 0.13672 l -0.01953,0.26171 -0.06641,0.25391 -0.08203,0.21484 -0.101562,0.1836 -0.09766,0.14844 -0.08594,0.10156 -0.06641,0.082 -0.01563,0.0156 -0.199219,0.16797 -0.234375,0.13282 -0.214844,0.082 -0.214843,0.0664 -0.203125,0.0352 -0.148438,0.0156 -0.09766,0.0195 h -0.03516 l -0.300782,-0.0195 -0.265625,-0.0664 -0.234375,-0.082 -0.199218,-0.0977 -0.148438,-0.0859 -0.117187,-0.082 -0.08594,-0.0664 -0.01172,-0.0195 -0.167968,-0.19921 -0.132813,-0.23047 -0.08594,-0.21875 -0.06641,-0.21485 -0.03125,-0.18359 -0.01953,-0.14844 -0.01172,-0.10156 v -0.0352 l 0.01172,-0.26172 0.06641,-0.23437 0.08594,-0.21875 0.09766,-0.18359 0.08594,-0.14844 0.08203,-0.11719 0.06641,-0.0664 0.01953,-0.0156 0.214844,-0.18359 0.214844,-0.13282 0.234375,-0.0859 0.214844,-0.0625 0.199218,-0.0352 z m 0,0"
             style="fill:none;fill-opacity:0;fill-rule:evenodd;stroke:none" />
      </g>
      </svg>