Javascript 有没有办法使用SVG渐变作为位移贴图的输入?

Javascript 有没有办法使用SVG渐变作为位移贴图的输入?,javascript,svg,svg-filters,Javascript,Svg,Svg Filters,我试图生成一个渐变,我可以用它作为feDisplacementMap来扭曲SVG中的文本。我需要如何设置它 我曾尝试将其创建为SVG的一部分,并隐藏渐变,但无法使其以这种方式工作 文本 为了使其正常工作,您需要为feImage使用一个数据uri。我用的是你的梯度,但是你用的滤镜有一种小比例的方式。我使用的是scale=“15” 应用于文本的径向渐变 .container{ 宽度:100%; 身高:100%; } #txt1{ 字体大小:200px; 字体大小:粗体; 字体系列:“S

我试图生成一个渐变,我可以用它作为feDisplacementMap来扭曲SVG中的文本。我需要如何设置它

我曾尝试将其创建为SVG的一部分,并隐藏渐变,但无法使其以这种方式工作


文本

为了使其正常工作,您需要为
feImage
使用一个数据uri。我用的是你的梯度,但是你用的滤镜有一种小比例的方式。我使用的是
scale=“15”


  • 应用于文本的径向渐变
.container{
宽度:100%;
身高:100%;
}
#txt1{
字体大小:200px;
字体大小:粗体;
字体系列:“Signika”,无衬线;
填充:url(#rg);
}

堆栈

根据我使用Firefox的经验,位移贴图过滤器原语中唯一允许的输入是feturbulence元素的输出。因此,您必须使用
feturbulence
作为源创建渐变。对于从左到右的线性渐变,从颜色r1、g1、b1到r2、g2、b2,并填充从
0,0
100100
的空间,您必须创建xn
feturbulence
输出,其中xn可以是任何数字,但它越大,渐变越平滑。
每个n:th
feturbulence
输出,然后必须使用
fecolormatrix
更改其颜色通道,如下所示:
c=c1*(1-n/xn)+c2*(n/xn)
,其中c是特定输出的通道值,c1是通道的起始值,c2是结束值。每个元素的高度必须设置为
100
,宽度必须设置为
100/xn
,x位置必须设置为
n/xn*100
。然后使用
femergenode
将所有这些输出合并为一个输出,然后可以作为
fedisplacementmap
中的
in2
使用

非常感谢你的帮助!这正是我想要的:)@rui很乐意帮忙