svg - 如何控制 SVG 阴影的颜色?

标签 svg svg-filters

我有以下 SVG:

<defs>
    <filter id="dropshadow">
        <feOffset result="offOut" in="SourceAlpha" dx="2" dy="2"></feOffset>
        <feGaussianBlur result="blurOut" in="offOut" stdDeviation="2"></feGaussianBlur>
        <feBlend in="SourceGraphic" in2="blurOut" mode="normal"></feBlend>
    </filter>
</defs>

但是,我该如何改变它以添加控制阴影颜色的能力?

最佳答案

您应该使用 feColorMatrix 中的固定偏移列来指定精确的颜色。具体来说,例如,如果您想要 RGB(128,128,0),则可以将其转换为单位比例 (0.5, 0.5,0) 并将其放入颜色矩阵的第五列。在 sRGB 色彩空间中指定这一点也很重要。

<defs>
    <filter id="dropshadow" color-interpolation-filters="sRGB">
        <feOffset result="offOut" in="SourceAlpha" dx="2" dy="2"/>
        <feColorMatrix in="offOut" result ="matrixOut" type="matrix"                           
                                     values="0 0 0 0 0.5
                                             0 0 0 0 0.5
                                             0 0 0 0 0 
                                             0 0 0 1 0" />
        <feGaussianBlur result="blurOut" in="matrixOut" stdDeviation="2"/>
        <feBlend in="SourceGraphic" in2="blurOut" mode="normal"/>
    </filter>
</defs>

关于svg - 如何控制 SVG 阴影的颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40292035/

相关文章:

javascript - 在 SVG 中居中 SVG

css - 如何在透明矩形 svg 上有阴影

javascript - 我的 SVG 过滤器运行速度非常慢

twitter-bootstrap - 是否可以将 Bootstrap Glyphicons svg 文件加载到 Inkscape 中?

javascript - 检测 SVGAnimatedString 的类名

php - ImageMagick 和 imagick_type_gen 无法识别添加的字体

css - 双色调 SVG 过滤器在 Firefox 中不起作用

javascript - 生成渐变 css/svg 背景

html - SVG 图像未在 Safari 中呈现

SVG 阴影被剪裁