【发布时间】:2013-01-17 20:01:24
【问题描述】:
我在使用img 标签嵌入的 SVG 文件中使用投影过滤器。在我的 MacBook 上,它在 Safari 中看起来不错。但是,在移动版 Safari 中,图像会变得非常像素化并失去其所有清晰度。未应用过滤器时,SVG 渲染良好。除了传递过滤器之外,还有什么方法可以解决这个问题?
【问题讨论】:
标签: svg safari mobile-safari vector-graphics svg-filters
我在使用img 标签嵌入的 SVG 文件中使用投影过滤器。在我的 MacBook 上,它在 Safari 中看起来不错。但是,在移动版 Safari 中,图像会变得非常像素化并失去其所有清晰度。未应用过滤器时,SVG 渲染良好。除了传递过滤器之外,还有什么方法可以解决这个问题?
【问题讨论】:
标签: svg safari mobile-safari vector-graphics svg-filters
您应该尝试将过滤器的"filterRes" 属性显式设置为与视网膜显示匹配的值。
【讨论】:
这个问题在 2018 年仍然存在,我已经找到了解决方案。您可以复制您提供过滤器的元素,将其放置在实际元素下方,并仅在其上保留过滤器,而不在元素上使用任何过滤器。这样,Safari 和其他浏览器在调整大小时只会对带有阴影的元素进行光栅化,但它会被锐利的矢量元素隐藏。您可以查看示例并阅读更多内容here。
【讨论】:
不幸的是,我为此尝试了所有建议的解决方法,但都没有奏效,唯一对我有用的是将 svg 内联,而不是作为 img 标签。
很惊讶这个问题似乎已经存在了这么久!
【讨论】:
现在是 2021 年,它仍然很重要。我找到了一个对我有用的解决方法:您可以放大 svg,然后使用 css-transform 将其缩小:
.section_logo img {
height: 500%;
transform-origin: top left;
transform: scale(0.2);
}
【讨论】: