一、SVG中对图像标签的支持
Attribute
Style:
CSS fill 属性定义填充的颜色
CSS stroke-width 属性指定填充线宽
CSS stroke 属性指定border颜色
CSS fill-opacity 属性定义填充颜色的透明度(从0到1)
CSS stroke-opacity属性定义描边颜色的透明度(从0到1)
CSS opacity属性定义整个元素的透明度(从0到1)
CSS filter:url(#Gaussian_Blur)属性用来给元素链接滤镜。当链接到filters的id属性时,#是必须的。
Fill: 属性定义填充的颜色
Stroke: 属性指定border颜色
Stroke-width: 属性指定填充线宽
矩形 <rect>
Attribute:
width 属性指出矩形的宽
height 属性指出矩形的高。
rx and ry 属性定义矩形的圆角
x 属性定义矩形的左位置
y 属性定义矩形距上端的位置
圆 <circle>
Attribute:
cx 属性定义圆心的x坐标
cy 属性定义圆心的y坐标
r 属性定义圆的半径
椭圆 <ellipse>
Attribute:
cx 椭圆的中心点的x坐标
cy 椭圆的中心点的y坐标
rx 指出椭圆的横向半径
ry 指出椭圆的纵向半径
直线 <line>
x1指定起点的x坐标
y1指定起点的y坐标
x2指定终点的x坐标
y2指定终点的y坐标
折线 <polyline>
points属性定义多点的x,y坐标
多边形 <polygon>
points属性定义多边形每个角的x,y坐标
曲线路径描述和操作 <path>
M = moveto(M X,Y)注意:上面所有的命令也可以表示成小写形式。大写字母表示绝对位置,小写字母表示相对位置。
L H V指令
M起点X,起点YL(直线)终点X,终点YH(水平线)终点XV(垂直线)终点Y。
C指令——三次贝塞曲线
C第一控制点X,第一控制点Y 第二控制点X,第二控制点Y曲线结束点X,曲线结束点Y。
S指令
S第二控制点X,第二控制点Y 结束点X,结束点Y。
Q指令——二次贝塞曲线
Q控制点X,控制点Y 曲线结束点X,曲线结束点Y。
T指令——映射
T映射前面路径后的终点X,映射前面路径后的终点Y。
A指令
Elliptical Arc,允许不闭合。可以想像成是椭圆的某一段,共七个参数。
RX,RY指所在椭圆的半轴大小
XROTATION指椭圆的X轴与水平方向顺时针方向夹角,可以想像成一个水平的椭圆绕中心点顺时针旋转XROTATION的角度。
FLAG1只有两个值,1表示大角度弧线,0为小角度弧线。
FLAG2只有两个值,确定从起点至终点的方向,1为顺时针,0为逆时针
X,Y为终点坐标
如M0,25,A12.5,12.5,0,1,1,0,25.01Z表示一个圆心在(12.5,25),半径为12.5的圆。其中起点和终点几乎重合,用Z指令将它们闭合,注意终点不能填(0,25),那样A指令是无法被解析的。
对于<path>、<text>元素和前述形状元素,可以利用Stroke 和Fill属性进行勾勒和填充,其中填充可以使用某种颜色,或使用<linearGradient>、<radialGradient>定义的渐变色,或是使用<pattern>定义的底纹填充模式。而对于<path>、<line>、<polyline>、<polygon>等元素,只要将其放入<marker>标记对中,即可按所定义的路径绘制箭头。
<linearGradient>标签用来定义一个svg线性渐变,<linearGradient>标签必须嵌套在<defs>标签里, 线性渐变可以被定义为,水平,垂直,角形渐变。当y1≠y2,x1=x2时,产生水平渐变, 当x1≠x2,y1=y2时,产生垂直渐变, 当y1≠y2,x1≠x2时,产生角形渐变. <linearGradient>标签的id属性定义渐变的唯一标识名。
<linearGradient>标签的x1,x2,y1,y2属性用来定义渐变的首尾位置.
渐变颜色范围可以由两种或多种颜色组成。每一中颜色由一个<stop>标签描述。Offset属性用来定义渐变首尾的颜色。
<radialGradient>标签用来定义一个svg径向渐变。radialGradient>标签必须嵌套在<defs>标签里。<radialGradient>的id属性定义了渐变的唯一标志名,cx,cy,r 属性定义外圆,fx,fy定义内圆,渐变颜色范围可以由两种或多种颜色组成。每一中颜色由一个<stop>标签描述。Offset属性用来定义渐变首尾的颜色。
对于<path>、<text>元素和各种形状元素,也可以对其轮廓内的区域作裁剪、蒙版和合成操作。<clipPath>利用上述各种元素描述裁剪路径,<mask>标记则支持单通道、三通道、和alpha通道操作。最后,SVG还支持图形中成组的概念,以上操作均可以对一组图形进行操作。
二、SVG中对图像过滤操作的支持
使用标记<filter>可以定义过滤器效果,在其中按照要施加的过滤操作的顺序依次罗列相应的标记。
feBlend
feColorMatrix
feComponentTransfer
feComposite
feConvolveMatrix
feDiffuseLighting
feDisplacementMap
feFlood
<feGaussianBlur>
Attribute:
stdDeviation 属性用来定义blur的值
in="SourceGraphic" 定义本效果的输入源是整个图像
feImage
feMerge
feMorphology
feOffset
feSpecularLighting
feTile
feTurbulence
feDistantLight
fePointLight
feSpotLight
一个svg滤镜必须在<defs>标签里定义。<filter>标签用来定义一个svg滤镜。<filter>标签有一个必须的id属性来唯一标识该滤镜应用到图像中。<filter>标签必须嵌套到<defs>标签里,<defs>标签是definitions的简写,允许特殊标签的定义。
三、SVG中对动画的支持
SVG中用标记<animateMotion>描述元素的移动效果,用<animateFlipbook>描述元素的弹跳效果,用<animateTransform>描述元素的放缩、旋转、偏斜等变换效果,用<animateColor>描述元素颜色的改变,还可以用<animate>描述元素的淡入淡出效果。