Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么SVG feComposite过滤器中用作源的文本大小会受到SVG元素大小的影响?_Svg_Svg Filters - Fatal编程技术网

为什么SVG feComposite过滤器中用作源的文本大小会受到SVG元素大小的影响?

为什么SVG feComposite过滤器中用作源的文本大小会受到SVG元素大小的影响?,svg,svg-filters,Svg,Svg Filters,我正在尝试学习如何在SVG中使用feComposite,特别是想使用文本作为合成源之一。这是我尝试做的初步示例 8. 通常,当未指定尺寸和单位时,SVG过滤器容易出错。在这种情况下,g元素将坏尺寸传递给过滤器。例如,如果将“y”坐标添加到g元素内的第一个“使用”元素(圆)并调整其值,则文本将收缩和展开 如果您显式地向所有内容添加维度,并通过PreserveSpectratio指定是否要保留输入的纵横比,则所有内容都可以正常工作。如果您想保留它,无论您想将其大小调整为输入的更大(满足)维度还是

我正在尝试学习如何在SVG中使用feComposite,特别是想使用文本作为合成源之一。这是我尝试做的初步示例


8.

通常,当未指定尺寸和单位时,SVG过滤器容易出错。在这种情况下,g元素将坏尺寸传递给过滤器。例如,如果将“y”坐标添加到g元素内的第一个“使用”元素(圆)并调整其值,则文本将收缩和展开

如果您显式地向所有内容添加维度,并通过PreserveSpectratio指定是否要保留输入的纵横比,则所有内容都可以正常工作。如果您想保留它,无论您想将其大小调整为输入的更大(满足)维度还是更小(切片)维度

你的过滤器实际上丢弃了它被调用的内容(它的SourceGraphic)——因此你在g元素中拥有什么并不重要——它只是使用内容来调整过滤器区域的大小(结果是不一致的)。因此,您也可以只对100%/100%rect元素应用一个过滤器——您应该明确地调整其大小

因此,如果您显式地指定维度,这个过滤器就可以正常工作。我不知道你想做什么。如果您希望内容在扩展SVG元素宽度/高度时保持固定,这就是您想要的过滤器


8.

通常,当未指定尺寸和单位时,SVG过滤器容易出错。在这种情况下,g元素将坏尺寸传递给过滤器。例如,如果将“y”坐标添加到g元素内的第一个“使用”元素(圆)并调整其值,则文本将收缩和展开

如果您显式地向所有内容添加维度,并通过PreserveSpectratio指定是否要保留输入的纵横比,则所有内容都可以正常工作。如果您想保留它,无论您想将其大小调整为输入的更大(满足)维度还是更小(切片)维度

你的过滤器实际上丢弃了它被调用的内容(它的SourceGraphic)——因此你在g元素中拥有什么并不重要——它只是使用内容来调整过滤器区域的大小(结果是不一致的)。因此,您也可以只对100%/100%rect元素应用一个过滤器——您应该明确地调整其大小

因此,如果您显式地指定维度,这个过滤器就可以正常工作。我不知道你想做什么。如果您希望内容在扩展SVG元素宽度/高度时保持固定,这就是您想要的过滤器


8.

这似乎是一个Chrome bug。一致性行为是不更改大小,因为在使用librsvg或Inkscape进行渲染时可以观察到这一点。请注意,Firefox根本不呈现过滤器,我认为这是因为不支持引用内部ID。这似乎是Chrome的一个bug。一致性行为是不更改大小,因为在使用librsvg或Inkscape进行渲染时可以观察到这一点。请注意,Firefox根本不呈现过滤器,我认为这是因为不支持引用内部ID。感谢您的修订。我仍然不完全理解发生了什么,我需要更多地了解SVG中的单位/维度。你说“坏尺寸”;这仅仅是因为意外的输入会导致不确定的结果(即,受符合SVG运行时实现的不同处理的影响)?或者说,在给定输入的情况下,观察到的行为是确定性的,并且是SVG规范所期望的,但不是我想要的?坏的维度=bug。SVG过滤器中有许多错误。浏览器团队修复它们的速度非常慢。有一些过滤器缺陷已经存在6年多了。SVG文本还有很多未完成的特性和bug。因此,过滤器非常强大,但您必须在任何地方测试所有内容,并小心bug。在你的情况下,这个过滤器在firefox中根本不起作用,因为它不支持feImage的片段输入-你必须通过数据uri内联东西。有没有其他方法可以代替feImage来获取feComposite的输入?我知道我可以使用SourceImage作为一个,但还没有找到其他方法来获得第二个。“SourceGraphic”-而不是“SourceImage”:)还有其他方法-将两个形状并排放在SourceGraphic中,并使用feOffset覆盖它们和feFlood,其大小与通过feComposite/in选择最终结果的结果相符。另一种方法,当你有单色形状时可以使用——你构建一个SourceGraphic,将不同的形状放入红色、绿色和蓝色通道中,然后使用feColorMatrix将它们分离成单独的“结果”,然后再进一步处理。对,“SourceGraphic”。“这个过滤器在firefox中根本不起作用,因为它不支持feImage的片段输入-你必须通过数据uri内联内容”这是怎么做到的?谢谢你的修改。我仍然不完全理解发生了什么,我需要更多地了解SVG中的单位/维度。你说“坏尺寸”;这仅仅是因为意外的输入会导致不确定的结果(即,受符合SVG运行时实现的不同处理的影响)?或者说,在给定输入的情况下,观察到的行为是确定性的,并且是SVG规范所期望的,但不是我想要的?坏的维度=bug。SVG过滤器中有许多错误。浏览器团队修复它们的速度非常慢。有一些过滤器缺陷已经存在6年多了。SVG文本还有很多未完成的特性和bug。所以,过滤器是