欢迎访问服务器技术网-www.fuwuqijishu.com

SVG 阴影

SVG fuwuqijishu 2年前 (2022-06-15) 188次浏览 0个评论 扫描二维码
文章目录[隐藏]

SVG 阴影


注意: Internet Explorer和Safari不支持SVG滤镜!


<defs> 和 <filter>

所有互联网的SVG滤镜定义在<defs>元素中。<defs>元素定义短并含有特殊元素(如滤镜)定义。

<filter>标签用来定义SVG滤镜。<filter>标签使用必需的id属性来定义向图形应用哪个滤镜?


SVG <feOffset>

实例 1

<feOffset>元素是用于创建阴影效果。我们的想法是采取一个SVG图形(图像或元素)并移动它在xy平面上一点儿。

第一个例子偏移一个矩形(带<feOffset>),然后混合偏移图像顶部(含<feBlend>):

SVG 阴影

下面是SVG代码:

实例

<svg xmlns=”http://www.w3.org/2000/svg&#8221; version=”1.1″>
  <defs>
    <filter id=”f1″ x=”0″ y=”0″ width=”200%” height=”200%”>
      <feOffset result=”offOut” in=”SourceGraphic” dx=”20″
dy=”20″ />
      <feBlend in=”SourceGraphic” in2=”offOut”
mode=”normal” />
    </filter>
  </defs>
  <rect width=”90″ height=”90″ stroke=”green” stroke-width=”3″
  fill=”yellow” filter=”url(#f1)” />
</svg>

对于Opera用户: 查看SVG文件(右键单击SVG图形预览源)。

代码解析:

  • <filter>元素id属性定义一个滤镜的唯一名称
  • <rect>元素的滤镜属性用来把元素链接到”f1″滤镜

实例 2

现在,偏移图像可以变的模糊(含 <feGaussianBlur>):

SVG 阴影

下面是SVG代码:

实例

<svg xmlns=”http://www.w3.org/2000/svg&#8221; version=”1.1″>
  <defs>
    <filter id=”f1″ x=”0″ y=”0″ width=”200%” height=”200%”>
      <feOffset result=”offOut” in=”SourceGraphic” dx=”20″
dy=”20″ />
      <feGaussianBlur result=”blurOut” in=”offOut”
stdDeviation=”10″ />
      <feBlend in=”SourceGraphic” in2=”blurOut”
mode=”normal” />
    </filter>
  </defs>
  <rect width=”90″ height=”90″ stroke=”green” stroke-width=”3″
  fill=”yellow” filter=”url(#f1)” />
</svg>

对于Opera用户: 查看SVG文件(右键单击SVG图形预览源)。

代码解析:

  • <feGaussianBlur>元素的stdDeviation属性定义了模糊量

实例 3

现在,制作一个黑色的阴影:

SVG 阴影

下面是SVG代码:

实例

<svg xmlns=”http://www.w3.org/2000/svg&#8221; version=”1.1″>
  <defs>
    <filter id=”f1″ x=”0″ y=”0″ width=”200%” height=”200%”>
      <feOffset result=”offOut” in=”SourceAlpha” dx=”20″
dy=”20″ />
      <feGaussianBlur result=”blurOut” in=”offOut”
stdDeviation=”10″ />
      <feBlend in=”SourceGraphic” in2=”blurOut”
mode=”normal” />
    </filter>
  </defs>
  <rect width=”90″ height=”90″ stroke=”green” stroke-width=”3″
  fill=”yellow” filter=”url(#f1)” />
</svg>

对于Opera用户: 查看SVG文件(右键单击SVG图形预览源)。

代码解析:

  • <feOffset>元素的属性改为”SourceAlpha”在Alpha通道使用残影,而不是整个RGBA像素。

实例 4

现在为阴影涂上一层颜色:

SVG 阴影

下面是SVG代码:

实例

<svg xmlns=”http://www.w3.org/2000/svg&#8221; version=”1.1″>
  <defs>
    <filter id=”f1″ x=”0″ y=”0″ width=”200%” height=”200%”>
      <feOffset result=”offOut” in=”SourceGraphic” dx=”20″
dy=”20″ />
      <feColorMatrix result=”matrixOut” in=”offOut”
type=”matrix”
      values=”0.2 0 0 0 0 0 0.2 0 0 0 0 0 0.2 0 0 0 0 0
1 0″ />
      <feGaussianBlur result=”blurOut” in=”matrixOut”
stdDeviation=”10″ />
      <feBlend in=”SourceGraphic” in2=”blurOut”
mode=”normal” />
    </filter>
  </defs>
  <rect width=”90″ height=”90″ stroke=”green” stroke-width=”3″
  fill=”yellow” filter=”url(#f1)” />
</svg>

对于Opera用户: 查看SVG文件(右键单击SVG图形预览源)。

代码解析:

  • <feColorMatrix>过滤器是用来转换偏移的图像使之更接近黑色的颜色。 ‘0.2’矩阵的三个值都获取乘以红色,绿色和蓝色通道。降低其值带来的颜色至黑色(黑色为0)

喜欢 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

Warning: error_log(/www/wwwroot/fuwiqijishu/wp-content/plugins/spider-analyser/#log/log-2117.txt): failed to open stream: No such file or directory in /www/wwwroot/fuwiqijishu/wp-content/plugins/spider-analyser/spider.class.php on line 2900