在SVG中使用外部绘图

您可以在 SVG 文档中包括预定义的内容 —— 在呈现的文档内或文档之外定义的内容。

引用内部绘图

symbol,defs 都可以事先定义好图形,而后use来引用

<svg  width="200" height="200" version="1.1"
        xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <symbol id="shape2">
        <circle cx="25" cy="25" r="25"></circle>
        <title>My image</title>
    </symbol>

    <defs>
        <g id="shape3">
            <circle cx="25" cy="25" r="25" fill="red"></circle>
        </g>
    </defs>
    <use xlink:href="#shape2" x="50" y="25" ></use>
    <use xlink:href="#shape3" x="150" y="25" ></use>
</svg>

有关symbol,defs的异同点,可以参考这篇文章

引用外部绘图

我们事先已经准备好了一个外部绘图svg文件svg-file-test.svg

1.使用<image>

使用预定义内容作为 SVG 绘图一部分的方法之一是使用 <image>元素。在概念上,SVG 中的<image>与 HTML 中的 <img>非常类似:该元素只须指示呈现客户机在当前的 SVG 环境中绘制外部图像的内容 —— 其本身可能是 SVG 或者是 JPEG 或 PNG 格式的光栅图像。您几乎可以像调整一个规则的图形元素那样来调整外部图像的大小和改变其位置

<svg  width="100%" height="100%" version="1.1"
        xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <image  x="0" y="0" width="300" height="200"  xlink:href="../assets/img/svg-file-test.svg"></image>

    <image  x="0" y="200" width="300" height="200"  xlink:href="../assets/img/wl_white.png"></image>
</svg>

2.使用<use>元素

任何svg, symbol, g, 单个的图形元素和use元素本质上都可以作为模板对象被use元素引用(例如初始化)。use引用的图形内容会在指定的位置渲染。与image元素不同,use元素不能引用整个文档。

<svg    width="100%" height="100%" version="1.1"
        xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <use xlink:href="../assets/img/svg-file-test.svg#svg2" x="0" y="0"  width="100" height="100" ></use>
    <use xlink:href="../assets/img/svg-file-test.svg#rect2985" x="0" y="325"  width="300" height="200" ></use>
</svg>

第一个use引用了该文件的整个svg元素。

第二个use引用了该文件的rect元素。

时间: 2024-08-17 14:51:49

在SVG中使用外部绘图的相关文章

Java中调用外部命令

Java中调用外部命令 public class ExecCommond{ public ExecCommond(){} /** * 执行一条命令 * @param execStr String 命令字符串 * @return String 执行命令错误时的信息. */ public static String exec(String execStr) { Runtime runtime = Runtime.getRuntime(); 取得当前运行期对象 String outInfo="&quo

在PHP中执行系统外部命令

执行 PHP作为一种服务器端的脚本语言,象编写简单,或者是复杂的动态网页这样的任务,它完全能够胜任.但事情不总是如此,有时为了实现某个功能,必须借助于操作系统的外部程序(或者称之为命令),这样可以做到事半功倍. 那么,是否可以在PHP脚本中调用外部命令呢?如果能,如何去做呢?有些什么方面的顾虑呢?相信你看了本文后,肯定能够回答这些问题了. 是否可以? 答案是肯定的.PHP和其它的程序设计语言一样,完全可以在程序内调用外部命令,并且是很简单的:只要用一个或几个函数即可. 前提条件 由于PHP基本是

Flash中调用外部文本文件的两种方法

方法一:利用上下滚动按钮 1.打开文本文件,将文本复制到Windows 2000自带的程序"记事本"中,并在文本内容的前面输入"t="("t"为我们定义的一个变量),然后保存为"m.txt"文件,保存位置为"我的文档",编码设为"UTF-8"或"Unicode". 2.运行Flash MX,以"也谈在Flash中调用外部文本文件"为名,保存在&qu

李贤昌:浅谈SEO中的外部链接

网站的内部链接链接和外部链接对于一个网站来说都非常的重要,都受站长的高度重视.特别是外部链接对于吸引搜索引擎蜘蛛.提升网站PR值.为网站带来流量.提升网站知名度都有重要的作用.所以说做好外部链接优为重要.今天就让我简单的来谈谈如何做好外部链接. 什么是外部链接?如何做好外部链接,到哪里去做外部链接?做外部链接有些什么渠道和方式?应注意些什么事项?笔者做6个多月外部链接的工作以来有一些心得,这里与大家进行一个分享,希望对一些新人站长或SEO新人有一定的帮助. 什么是外部链接? 外部链接又称反向链接

在存储过程中调用外部的动态连接库

问题的提出: 一般我们要根据数据库的纪录变化时,进行某种操作.我们习惯的操作方式是在程序中不停的查询表,判断是否有新纪录.这样耗费的资源就很高,如何提高这种效率,我想在表中创建触发器,在触发器中调用外部动态连接库通过消息或事件通知应用程序就可实现.而master的存储过程中最好能调用外部的动态连接库,我们在触发器中调用master的存储过程即可. 说明:VC6需要安装较新的Platform SDK才能顺利编译本代码,VC.Net可以直接编译本代码.另外还需要连接Opends60.lib 为了使没

PHP 中执行系统外部命令_php基础

PHP 中执行系统外部命令 PHP作为一种服务器端的脚本语言,象编写简单,或者是复杂的动态网页这样的任务,它完全能够胜任.但事情不总是如此,有时为了实现某个功能,必须借助于操作系统的外部程序(或者称之为命令),这样可以做到事半功倍. 那么,是否可以在PHP脚本中调用外部命令呢?如果能,如何去做呢?有些什么方面的顾虑呢?相信你看了本文后,肯定能够回答这些问题了. 是否可以? 答案是肯定的.PHP和其它的程序设计语言一样,完全可以在程序内调用外部命令,并且是很简单的:只要用一个或几个函数即可. 前提

java web-在java项目中打开外部文件

问题描述 在java项目中打开外部文件 在项目开发中,界面有一个字段用于填写外部文件夹的地址类似"xmcode"这样,然后需要通过点击这个地址打开相应的文件夹, <a href="//xm/code"> 在IE可以使用,但在ff和chrome不行,打开的时候会自动带上项目的域名,另外使用 file:前缀也不行 解决方案 这就是兼容问题,所以最好要写成全称 解决方案二: 解决方案三: <a href="//xm/code">

html5-怎么在svg中嵌入html代码

问题描述 怎么在svg中嵌入html代码 在svg中嵌入html代码,,,,,,,,,,,,,,,,,,,,,,,, 解决方案 SVG如何嵌入htmlSVG 图形嵌入html页面Flex中嵌入Html代码范例 解决方案二: <?xml version="1.0" standalone="yes"?> <svg xmlns="http://www.w3.org/2000/svg"> <foreignobject x=&

我在VS2010中引用外部的头文件,提示找不到源文件“.cpp”

问题描述 我在VS2010中引用外部的头文件,提示找不到源文件".cpp" 我已经将头文件和.cpp文件所在路径添加至 "VC++ -->包含目录"和 "VC++-->库目录"里面.并且在工程中 include了要用的头文件,但报错显示"fatal error C1083: 无法打开源文件:"DataDefine.cpp": No such file or directory".希望大牛帮忙~