想像一下在浏览器里做下面这些事情:在任何地方(不仅仅在表单域里)输入文本,勾划一个外形,或者使用鼠标画一条线路。也就是说,把浏览器当作一个绘画工具,利用这个额外的能力还能把画好的图保存到数据库里。绘画和保存。有了可伸缩矢量图(SVG)这就是可能的,这是一个2001年9月W3C推荐的2-D Web图形标准。
这个能力用于注释显示在Web页面上的图像是很有用的。这项技术的商业应用包括注释医疗图像、地图和扫描的文档。
尽管像IE和Netscape这样在当前很流行的浏览器不能直接生成svg,但是有来自Adobe(svg查看器)和其他公司的插件可供使用,用于生成svg文档。由于svg是W3C的一个标准,所以我预计它将很快成为浏览器未来版本所内置的功能。
svg图像是矢量图,这意味着所有的图形信息都被保存在一系列用于画线、外形和其他对象的命令里。这些信息最终将会被转化成应用程序专用的位图,也叫做光栅图形。把svg图像转化成光栅图像是使用浏览器(插件)完成的。注意,这和基于位图的图形,如GIF或者JPEG不同,后者必须在服务器上生成,并作为位图发送给客户。
svg图像也是可伸缩的。放大svg图像不会造成图像的变形(锯齿边缘),因为是用于再次生成图像的指令,而不是位图像素值被送到了生成程序。
svg文件是XML格式的。当它被发送给浏览器/svg插件的时候,所有的内容都被保存在文档对象模型(DOM)里。svg提供了一个API来捕捉鼠标和键盘事件,并操控DOM。让我们看一个说明这个问题的例子吧。
Listing A管窥了XML风格的句法。它就像事务实体的对象模型,并带有绘图属性和对象属性。当这个文件使用svg插件在浏览器里被打开的时候,你会看看到一个环。要测试这一点,从Adobe的Web网站下载和安装svg插件。然后,创建一个新的文件Circle.svg,把其代码复制到文件里,并从Web浏览器里打开这个文件。