Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
可以在SVG中创建(或伪造)二维渐变吗?_Svg_Gradient - Fatal编程技术网

可以在SVG中创建(或伪造)二维渐变吗?

可以在SVG中创建(或伪造)二维渐变吗?,svg,gradient,Svg,Gradient,我正在尝试创建一个颜色选择器,它必须动态生成其图像,并认为生成SVG要比生成光栅图像容易得多。不幸的是,我不知道如何表示将构成选择器核心的大的二维梯度 例如,如果当前选定的轴为蓝色和绿色,则需要绘制一个正方形,该正方形具有左下角黑色、左上角蓝色、右下角绿色和右上角青色 如果有一种方法可以通过叠加两个linearGradient填充的正方形并使用它们的不透明度来实现这一点,我无法计算出来。我还尝试创建一个渐变,其开始-结束颜色是其他渐变(希望我是聪明的),但我得到的只是一个“大黑色无”。到目前为止

我正在尝试创建一个颜色选择器,它必须动态生成其图像,并认为生成SVG要比生成光栅图像容易得多。不幸的是,我不知道如何表示将构成选择器核心的大的二维梯度

例如,如果当前选定的轴为蓝色和绿色,则需要绘制一个正方形,该正方形具有左下角黑色、左上角蓝色、右下角绿色和右上角青色

如果有一种方法可以通过叠加两个
linearGradient
填充的正方形并使用它们的不透明度来实现这一点,我无法计算出来。我还尝试创建一个渐变,其开始-结束颜色是其他渐变(希望我是聪明的),但我得到的只是一个“大黑色无”。到目前为止,谷歌搜索对我毫无帮助


我不喜欢使用256个1像素高的渐变堆栈,这既是因为大小和复杂性的增加,也是因为我怀疑它的大小调整不好。也许对SVG有更多工作经验的人可以提出一些建议

这可以使用
混合模式
样式属性:



您最好使用canvas进行此操作。效果非常好!希望收养能有所改善。