软化矩阵svg过滤器中的颜色图像

时间:2017-01-02 23:25:15

标签: html css image svg svg-filters

我需要使用图像滤镜,软化红色为90%,绿色为80%,蓝色为70%。例如,我需要转换

rgb(255,255,255)  

rgb(229,204,178)

(229 = 90%* 255,204 = 80%* 255,178 = 70%* 255)。所以,我已经定义了一个svg过滤器如下:

<feColorMatrix in="SourceGraphic" type="matrix" values="0.9 0 0 0 0
        0 0.8 0 0 0
        0 0 0.7 0 0
        0 0 0 1 0"/>

不幸的是,过滤器无法按预期工作,因为它会转换浅色图像中的白色图像,而不是颜色rgb(229,204,178)描述的图像。 请参阅JSFiddle代码和结果。

也许我不太了解矩阵滤波器的工作原理。我怎样才能获得所描述的影响? (红色,绿色和蓝色减少90%,80%和70%)

1 个答案:

答案 0 :(得分:2)

您需要将sRGB指定为颜色空间。添加:

Paginator {#475 ▼
  -query: Query {#484 ▼
    -_state: 2
    -_dql: "SELECT article, (CASE WHEN article.to = 'WOR' THEN 1 ELSE 0 END) AS to FROM AppBundle\Entity\Article article WHERE article.title LIKE :title ORDER BY article.to ASC"
    -_parserResult: null
    -_firstResult: 0
    -_maxResults: 50
    -_queryCache: null
    -_expireQueryCache: false
    -_queryCacheTTL: null
    -_useQueryCache: true
    #parameters: ArrayCollection {#483 ▼
      -elements: array:1 [▼
        0 => Parameter {#480 ▼
          -name: "title"
          -value: "%t%"
          -type: 2
        }
      ]
    }
    #_resultSetMapping: null
    #_em: EntityManager {#105 …10}
    #_hints: []
    #_hydrationMode: 1
    #_queryCacheProfile: null
    #_expireResultCache: false
    #_hydrationCacheProfile: null
  }
  -fetchJoinCollection: true
  -useOutputWalkers: null
  -count: 143
}

到你的滤镜元素,一切正常。