📅  最后修改于: 2023-12-03 15:20:23.385000             🧑  作者: Mango
FEDisplacementMap元素是SVG过滤器中用于创建图像扭曲效果的元素之一。常常和FETurbulence元素一起使用。FEDisplacementMap.in2属性用于指定作为扭曲贴图之一的图像元素。
<filter id="filter-id">
<feDisplacementMap in="input-value" in2="displacement-map" xChannelSelector="channel-selector" yChannelSelector="channel-selector" scale="scale-value" offset="offset-value">
</feDisplacementMap>
</filter>
"displacement-map"
:表示作为扭曲贴图的图像元素的ID或SVG图像URI。默认值为none。xChannelSelector
:x通道选择器属性。r
。yChannelSelector
:y通道选择器属性。g
。scale
:指定了平均映射矢量的 "大小" (即灰度值 128 的映射矢量的实际大小)。offset
:介于-1.0到+1.0之间的值,旨在平移指定的位于输入图像中像素的选定通道。通过将该偏移量分配给某个通道,您可以创建一些几乎看起来像发亮或阴影的效果。<svg width="300" height="200" >
<defs>
<filter id="displacementFilter">
<feTurbulence type="fractalNoise"/>
<feDisplacementMap in="SourceGraphic" in2="turbulence" xChannelSelector="R" yChannelSelector="B" scale="20"/>
</filter>
</defs>
<rect x="50" y="50" width="200" height="100" fill="#43A047" filter="url(#displacementFilter)"/>
</svg>
这将创建一个绿色的矩形,其中应用了一个渲染噪声贴图作为扭曲贴图。运用了红色通道的数据以创建水平扭曲,将蓝色通道的数据应用于垂直扭曲。最后将所有矩形的全局位置平移了20。