- 浏览: 772442 次
- 性别:
- 来自: 广州
文章分类
最新评论
-
corelengine:
好文,支持一下!
在 Spring Web Flow 项目中应用 Hessian 服务 -
corelengine:
感谢分享,不过你的工程太简单了,怎么可以导入eclipse
Spring Web Flow 2.0 入门 例子源码 -
chenrongtao2132:
melody404 写道请教博主一个问题
登录成功以后为什么老 ...
CAS 单点登录安装笔记4 -- asp.net client端的设置 -
chxiaowu:
从头到尾没发现 那里有 cxf bean配置啊。。。。
WebService开发笔记 3 -- 增强访问 WebService 的安全性 -
chxiaowu:
严重: StandardWrapper.Throwable
o ...
WebService开发笔记 3 -- 增强访问 WebService 的安全性
原文出处:https://www6.software.ibm.com/developerworks/cn/education/xml/x-svg/tutorial/index.html
笔划与填充 | <nobr>第 1 页(共5 页)</nobr> |
整个教程到目前为止,示例已经演示了围绕对象的笔划或线以及对象内部区域的填充。这些属性实际上还有子属性,也可以设置子属性来创建不同的效果。这些属性包括:
fill
:该属性指定用来填充对象内部区域的颜料。大多数情况下,该属性只是一种颜色,但它也可以是渐变或图案(会在图案中介绍)。这个值通常是关键字、颜色说明或指向预定义元素的 URI。fill-opacity
:该属性指定元素的透明性。值的范围从完全透明(0)到完全不透明(1)。stroke
:该属性指定元素外边框的外观。象 fill 一样,它引用颜料,尽管通常将它指定为一种简单颜色。stroke-width
:该属性指定笔划线的宽度。stroke-linecap
:该属性确定线末端的形状,可取的值有粗端(缺省值)、圆和正方形。stroke-linejoin
:该属性确定对象各角的外观。允许的值有直角(缺省值)、圆和斜角,它如示例中所示将尖角的边缘“剪掉”。stroke-dasharray
:该属性是一个整数系列(如 3、2、3、2、4、3、2 和 3),它允许对虚线中每一划的相对长度进行控制。stroke-opacity
:类似于 fill-opacity,该属性确定元素笔划线的相对透明性。
您可以在下面看到这些属性的一些示例:
xml 代码
- <!---->xml version="1.0"?>
- <!---->
- "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
- <svg width="400" height="200" xmlns="http://www.w3.org/2000/svg"
- xmlns:xlink="http://www.w3.org/1999/xlink">
- <desc>Stroke and filldesc>
- <defs>
- <linearGradient id="lineGradient">
- <stop offset="0%" stop-color="red" />
- <stop offset="100%" stop-color="yellow" />
- linearGradient>
- <polygon id="lens" points="65,50 185,50 185,75, 150,100
- 100,100 65,75"
- fill="pink" stroke="purple" stroke-width="4"
- fill-opacity=".5"/>
- . . .
- defs>
- <g>
- . . .
- <line x1="65" y1="50" x2="310" y2="50"
- stroke="plum" stroke-width="2"/>
- <!---->
- <rect x="50" y="125" width="275" height="40" fill="orange"
- stroke-width="6" stroke="url(#lineGradient)" />
- <!---->
- <line x1="65" y1="190" x2="310" y2="190"
- stroke="purple" stroke-width="20"
- stroke-linecap="round"/>
- <!---->
- <polygon points="50,250 100,225 300,225 200,275" stroke="blue"
- fill="none" stroke-width="10" stroke-linejoin="bevel" />
- g>
- svg>
颜色 | <nobr>第 2 页(共5 页)</nobr> |
颜色对于 SVG 图像是极其重要的。单个颜色可以直接使用它们的 RGB 值指定,或者使用差不多 150 个颜色关键字中的一个来间接指定,该关键字也引用 RGB 值。
RGB 值在 0 到 255 数值范围内指定一种颜色的红、绿、蓝成分的相对亮度。例如:
xml 代码
- <!---->xml version="1.0"?>
- <!---->
- "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
- <svg width="400" height="200" xmlns="http://www.w3.org/2000/svg">
- <desc>Colorsdesc>
- <defs>
- defs>
- <g>
- <text x="20" y="50" font-size="30">Colors can be specifiedtext>
- <text x="20" y="100" font-size="30">by their
- <tspan fill="rgb(255,0,0)">Rtspan>
- <tspan fill="rgb(0,255,0)">Gtspan>
- <tspan fill="rgb(0,0,255)">Btspan>
- valuestext>
- <text x="20" y="150" font-size="30">or by keywords such astext>
- <text x="20" y="200" font-size="30">
- <tspan fill="lightsteelblue">lightsteelbluetspan>,
- text>
- <text x="20" y="250" font-size="30">
- <tspan fill="mediumseagreen">mediumseagreentspan>,
- text>
- <text x="20" y="300" font-size="30">and
- <tspan fill="darkorchid">darkorchidtspan>.
- text>
- g>
- svg>
渐变 | <nobr>第 3 页(共5 页)</nobr> |
正象您在前面的示例中看到的,渐变提供了将颜色混合在一起的能力。渐变有两种。对于每种情况,代码都指定沿着渐变向量的颜色“停止”或颜色点,渐变到这些点就成为某种颜色。例如,指定红色在 0% 停止,白色在 50% 停止而蓝色在 100% 停止的渐变将逐渐由红色变为白色再变为蓝色,白色在渐变向量的中心。
可以推断或者直接指定渐变向量。以线性渐变为例,假设它从要填充区域的左缘开始到右缘结束。可以用 x1、y1、x2 和 y2 属性更改这一向量。也可以(依照)使用 gradientTransform
属性对这一向量进行变换。
以放射性渐变为例,渐变基于一个圆,可以用 cx
、cy
和 r
属性调整外部圆(渐变向量终止的地方)的圆心和半径。可以使用 fx
和 fy
属性调整焦点(渐变向量起始的地方)。
考虑下面这些线性和放射性渐变的示例:
xml 代码
- <!---->xml version="1.0"?>
- <!---->
- "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
- <svg width="400" height="200" xmlns="http://www.w3.org/2000/svg">
- <desc>Colorsdesc>
- <defs>
- <linearGradient id="linear1">
- <stop offset="0%" stop-color="red"/>
- <stop offset="50%" stop-color="white"/>
- <stop offset="100%" stop-color="blue"/>
- linearGradient>
- <linearGradient id="linear2" x1="100%" y1="0%" x2="0%"
- y2="100%">
- . . .
- linearGradient>
- <linearGradient id="linear3" gradientTransform="rotate(90)">
- . . .
- linearGradient>
- <radialGradient id="radial1">
- . . .
- radialGradient>
- <radialGradient id="radial2" fx="225" fy="225">
- . . .
- radialGradient>
- <radialGradient id="radial3" cx="25%" cy="25%" r="75%">
- . . .
- radialGradient>
- defs>
- <g>
- <!---->
- <rect x="10" y="10" height="100" width="100" stroke="black"
- fill="url(#linear1)"/>
- <rect x="125" y="10" height="100" width="100" stroke="black"
- fill="url(#linear2)"/>
- <rect x="240" y="10" height="100" width="100" stroke="black"
- fill="url(#linear3)"/>
- <!---->
- <rect x="10" y="125" height="100" width="100" stroke="black"
- fill="url(#radial1)"/>
- <rect x="125" y="125" height="100" width="100" stroke="black"
- fill="url(#radial2)"/>
- <rect x="240" y="125" height="100" width="100" stroke="black"
- fill="url(#radial3)"/>
- g>
- svg>
图案 | <nobr>第 4 页(共5 页)</nobr> |
用图案填充对象在很多地方与用渐变填充类似。两种情况下,都定义填充然后从填充属性内部调用它。
定义图案与定义任何其它作为 SVG 图像一部分出现的对象相似。它有位置、高度和宽度,通常还有一个或多个包含的对象。位置是基于整个文档还是基于正在被填充的对象由 patternUnits
属性确定,该属性可以设置为 objectBoundingBox
或 userSpaceOnUse
;这些属性分别设置基于对象和文档的坐标。与渐变相似,可以变换图案(使用 patternTransform
属性)。
请考虑下面的示例:
xml 代码
- <!---->xml version="1.0"?>
- <!---->
- "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
- <svg width="400" height="200" xmlns="http://www.w3.org/2000/svg">
- <desc>Patternsdesc>
- <defs>
- <pattern id="notes" x="0" y="0" width="50" height="75"
- patternTransform="rotate(15)"
- patternUnits="userSpaceOnUse">
- <ellipse cx="10" cy="30" rx="10" ry="5"/>
- <line x1="20" y1="30" x2="20" y2="0"
- stroke-width="3" stroke="black"/>
- <line x1="20" y1="0" x2="30" y2="5"
- stroke-width="3" stroke="black"/>
- pattern>
- defs>
- <g>
- <ellipse cx="175" cy="100" rx="125" ry="60"
- fill="url(#notes)" stroke="black" stroke-width="5"/>
- g>
- svg>
滤镜 | <nobr>第 5 页(共5 页)</nobr> |
也许 SVG 最强大的功能之一就是给图像添加了滤镜效果。这些效果复制了昂贵的图形操作程序中的许多效果,如光照效果和高斯模糊。对这些滤镜的完整讨论超出了本教程的范围,不过本页讨论了一些基本滤镜。
对 SVG 图像的滤镜操作包括创建一系列滤镜原语操作,该系列中每个原语操作都有自己的目的。例如,偏移滤镜按指定信息将源图像左移或右移以及上移或下移。高斯模糊原语操作按要求对源图像进行模糊处理。
源图像不必一定是实际的 SVG 图像。例如,它可以是前一个原语操作的结果。下面的代码将几个滤镜应用到前一页中显示的图案。
xml 代码
- <!---->xml version="1.0"?>
- <!---->
- "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
- <svg width="400" height="200" xmlns="http://www.w3.org/2000/svg"
- xmlns:xlink="http://www.w3.org/1999/xlink">
- <desc>Filtersdesc>
- <defs>
- <filter id="dropShadow" filterUnits="userSpaceOnUse"
- x="0" y="0" width="400" height="200">
- <feOffset in="SourceAlpha" dx="5" dy="5" result="offset"/>
- <feGaussianBlur in="offset" stdDeviation="5" result="blur"/>
- <feMerge>
- <feMergeNode in="blur"/>
- <feMergeNode in="SourceGraphic"/>
- feMerge>
- filter>
- . . .
- defs>
- <g>
- <ellipse filter="url(#dropShadow)" cx="175" cy="100"
- rx="125" ry="60"
- fill="url(#notes)" stroke="black" stroke-width="5"/>
- g>
- svg>
首先,偏移滤镜将原始椭圆及其图案的 alpha 通道作为源(使用 in
属性)。alpha 通道由与图像中每个非白色像素对应的黑色像素组成,并且用 SourceAlpha
关键字指定。偏移原语操作完成处理然后将结果输出到一个由 result
属性指定的缓冲区(本例中的缓冲区名为 offset
)。
接下来,模糊原语操作接任。它将 in
参数指定的 offset
缓冲区的内容作为源。然后,它将其结果输出到 result
属性指定的名为 blur
的缓冲区。
这时,滤镜仅由经过偏移和模糊的图像组成。如果滤镜操作到此为止,那么页面上只出现模糊处理的图像。合并原语操作取得 blur
缓冲区的内容然后将它与原始源图形合并,正如当 in
属性引用 SourceGraphic
关键字时所指定的那样。
所有处理的结果是一幅具有阴影效果的原始图像:
- s8.rar (866 Bytes)
- 下载次数: 11
发表评论
-
batik详解(7) 转载
2007-11-24 22:09 1719http://www.souzz.net/html/svg/3 ... -
batik详解(6) 转载
2007-11-24 22:01 2279在java平台中所有的绘图,都通过Graphics2D抽象类, ... -
batik详解(5) 转载
2007-11-24 21:58 2291自定义 Rhino 解释器 一个有用的Rhino解释器自定义 ... -
batik详解(4) 转载
2007-11-24 21:46 1895使用 Rhino 特性 Rhino有很多通过标准的ECMAS ... -
batik详解(3) 转载
2007-11-24 21:34 1980Scripting with ECMAScript 脚本基础 ... -
batik详解(2) 转载
2007-11-24 21:28 2236四、解析器模块 SVG有很多没有属性值的微型语法使用,比如SV ... -
batik详解(1) 转载
2007-11-24 21:14 3965batik详解(1) 转载 一、概述 Batik是为想使用s ... -
使用Batik开发SVG应用程序(二)
2007-11-24 21:05 2390使用Batik创建SVG应用程序<o:p>< ... -
使用Batik开发SVG应用程序(一) 转载
2007-11-24 21:00 4096使用Batik开发SVG应用程序 摘要<o:p> ... -
基于Batik的SVG应用: 关于几何变换[转帖]
2007-11-24 20:47 1975http://www.cnitblog.com/wjh1025 ... -
SVG相关教程
2007-11-21 22:53 2352准备 X ... -
面向浏览器的动态 SVG
2007-11-21 22:52 1597面向浏览器的动态 SVG 以 SVG 为基础在 Web 项目中 ... -
一个SVG的地图
2007-11-21 13:28 2051http://www.bundeswahlleiter.de/ ... -
使用脚本动态操作 SVG 文档
2007-11-18 12:06 1999... -
AJAX + SVG 实现实时监控图表
2007-11-18 11:53 2434... -
SVG中的动画技术(1)
2007-11-18 11:45 2105http://blog.csdn.net/net_lover/ ... -
SVG中的动画技术(2)
2007-11-18 11:43 1481http://blog.csdn.net/net_lover/ ... -
SVG中的动画技术(3)
2007-11-18 11:39 1321http://blog.csdn.net/net_lover/ ... -
svgdocument相关文档
2007-11-18 00:06 2456http://tag.csdn.net/tag/svgdocu ... -
用javascript 反馈服务器svg图片两点坐标?
2007-11-17 23:59 2005用javascript 反馈服务器svg图片两点坐标? xm ...
相关推荐
本教程“SVG经典教程2”是SVG学习的初级教程,旨在帮助初学者深入理解并掌握SVG的核心概念和实用技巧。 ### 1. SVG的基本概念 SVG图像由一系列几何形状组成,如线条、矩形、圆形、曲线等,这些形状在放大或缩小时仍...
这个“SVG经典教程1 (SVG从入门到精通)”上册,作为初级教程,旨在帮助读者快速掌握SVG的基本概念和实践技巧。 教程可能涵盖以下关键知识点: 1. SVG基础知识:解释SVG的定义,以及与位图(如JPEG或PNG)的区别。...
在这个SVG入门教程的第一部分,我们将探讨SVG的基本形状。 SVG图像由一系列几何形状构成,包括矩形、圆形、椭圆、线条、多边形和路径等。这些形状可以通过SVG的XML语法来定义。下面我们将逐一详细介绍这些基本形状...
在本篇SVG入门教程(二)中,我们将深入探讨SVG(Scalable Vector Graphics)的基本概念,以及如何在SVG中定义和组织元素。SVG是一种基于XML的矢量图像格式,它允许我们创建可缩放、高质量的图形,适用于网页和其他...
本书内容丰富,涵盖了SVG从入门到高级应用的方方面面,为有意深入学习SVG的读者提供了一条清晰的学习路径。对于前端开发人员、设计师以及对Web图形感兴趣的开发者来说,这是一本不可多得的学习和参考资料。
### SVG入门PDF文档知识点梳理 #### 一、SVG简介 - **定义**:SVG(Scalable Vector Graphics)是一种基于XML的语言,用于描述二维矢量图形。它由W3C组织制定并维护,当前版本为1.1。 - **特点**: - 可缩放性:...
【SVG图像入门教程1】 SVG,全称可缩放矢量图,是一种基于XML的图像格式,用于描述二维图形和图像。SVG图像的核心优势在于其矢量特性,意味着无论图像被放大多少倍,都能保持清晰无失真。这是因为SVG不是通过像素来...
这本《SVG经典入门书籍》显然是为了帮助初学者掌握这种强大的图像技术。 SVG的基本结构包括元素、属性和CSS样式。SVG元素是图像的基本构建块,如`<rect>`(矩形)、`<circle>`(圆形)和`<path>`(路径)。每个元素...
主要介绍了使用HTML5进行SVG矢量图形绘制的入门教程,包括基本图形的绘制和简单的渐变效果等介绍,注意旧版本IE对其的支持并不好,需要的朋友可以参考下
在SVG-master这个压缩包中,很可能包含了SVG的基本示例代码、教程文档或练习项目,通过学习这些内容,你可以深入理解SVG的工作原理,并掌握创建和编辑SVG图形的技能。无论是前端开发、UI设计还是数据可视化,SVG都是...
在Web开发中,有各种库和框架可以帮助处理SVG,如Snap.svg、D3.js等,它们提供了更高级的图形绘制和动画功能。 **6. 使用SVG图标系统** SVG图标系统是一种常见的优化方法,它将多个图标合并到一个SVG文件中,然后...
### SVG教程:深入理解可伸缩向量图形 #### 概念解析与入门指南 **SVG**,全称为**Scalable Vector Graphics**,是一种基于XML的语言,用于描述二维矢量图形及其行为。与传统的光栅图形(如GIF、JPEG)相比,SVG...
学习SVG基础入门,不仅能够理解基本的图形绘制,还能掌握如何创建交互式和动态图形,这对于Web开发者和设计师来说是一项重要的技能。通过实践和探索,可以深入理解和应用SVG的各种特性和技巧,提升作品的质量和专业...
3. **教你五分钟入门使用html5 svg绘制图形**:这可能是快速入门教程,教授基础的SVG语法和绘制图形的方法。 4. **1.SVG中添加onclick事件调用JS,调用父窗口的js**:这部分内容可能涉及到如何使SVG元素响应用户点击...
HTML5添加了许多新功能,如音频、视频元素,离线存储(localStorage),以及canvas和svg等图形绘制工具。 学习HTML是成为网页设计师或开发者的第一步。通过阅读“HTML语言入门教程1.doc”,你可以系统地了解HTML的...
1. **在线教程**:W3School、MDN Web Docs等网站提供了丰富的SVG教程,适合初学者入门。 2. **书籍**:《SVG Mastery》、《SVG Essentials》等专业书籍深入讲解SVG技术。 3. **课程**:Coursera、Udemy等平台有专门...