svg webtopo原型4-图片的动态显示

本文探讨了在SVG中实现动态显示图片的问题。通过分析源码,发现使用`image.setAttributeNS`方法设置`xlink:href`属性才能正确显示图片,而非直接使用`image.setAttribute`。此外,还提供了相关JS和SVG的简单封装示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这个例子是测试设备的显示。

主要就是用g来包含图片和文本。

这块遇到的困难有点超出想象。

开始创建的image对象怎么也无法显示。

但是生成的源码另存后是可以显示的。

百般不解。

最后还是通过分析webtopology的源码发现,

Image的连接必须写成

image.setAttributeNS("http://www.w3.org/1999/xlink","href",imageSrc);

而不能写成

image.setAttribute("xlink:href",imageSrc;    

 5img.htm

<!DOCTYPE html 
      PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<script type="text/javascript" language="javascript" src="./js/svg2.js"></script>

<title>
图例
</title>
</head>


<body bgcolor="#ffffff">

<br>
<button onclick="show()">开始</button><br>
<button onclick="showsrc()">源码</button><br>
<div id="divsvg">

</div>
</body>
<script>
var svg;
var plat;



function show(){

 svg=initSVG(300,300);
 //延迟一下,最小是10ms
 var tidst=window.setTimeout(show1,20);
}


function show1(){

 svgdoc=getSVGDocument(svg);
 plat=getrootg(svg,svgdoc);
 

 //var newRect=document.createElementNS('http://www.w3.org/2000/svg',"image");
 var newRect=createsvgele("image");
  newRect.setAttribute("x",80);
  newRect.setAttribute("y",80);  
  //这个是必须的
   //newRect.setAttribute("width",20);
  //newRect.setAttribute("height",20);
 
 //只能静态 
// newRect.setAttribute("xlink:href",'./image/DEV_IP_R.gif'); 
//这样就可以
 newRect.setAttributeNS("http://www.w3.org/1999/xlink","href",'image/ALCATEL.gif');
 //这样不行
  //newRect.setAttribute("href",'./image/DEV_IP_R.gif');

 plat.appendChild(newRect);

 }
</script>
</html>


相应的js, svg2.hs

对svg的基本操作进行了一些简单封装。


                
超强的Web在线矢量绘图器与监控系统 http://www.visual-graph.com/article/view.asp?id=1 工业图形网站:http://www.visual-graph.com 图形相关下载:http://www.visual-graph.com/down 图形相关技术:http://www.visual-graph.com/article 图形系统截图:http://www.visual-graph.com/gallery OnlineDraw是一个VG专为IE设计的矢量绘图组件。网页中有了VG,用户就可以直接在网页中绘制矢量图形、处理点阵图片,同时也可以做为一个可视化的图片上传客户端工具。OnlineDraw是一个标准的 COM控件产品,它本身只是一个"白板". 超强的Web在线矢量绘图器 OnlineDraw是一个VG专为IE设计的矢量绘图组件。网页中有了VG,用户就可以直接在网页中绘制矢量图形、处理点阵图片,同时也可以做为一个可视化的图片上传客户端工具。OnlineDraw是一个标准的 COM控件产品,它本身只是一个"白板",您可以根据您的具体需求,对他的所有工具条,图库列表,属性列表框等所有界面进行定制,定制的过程就是一个绘图的过程,所有的工具按钮和绘图事件都可以用 HTML 和 &#106avascript 来创建和激发。 简单几条语句即可在网站上实现功能拓展 控件本身是一个平台,全部功能均由VG内部,JS易于配合WB/S系统的图形绘制服务进行少量(二三十行代码)开发就可以出来了。完全的客户端控件,不增加服务器压力,一切功能均在客户端实现,无需服务器进行实时的数据计算,如果需要服务器的交互,VG也提供相应的接口与方法来在客户端与服务器端进行轻量级XML交互数据。 基于Visual Graph的OnlineDraw图形编辑工具经过近多年的深入研究与应用,有预见性地开发了大量具有潜在应用的功能,长期与用户互相合作,大量吸取用户应用经验,多年来的应用研究试验,Visual Graph终于被打造成图形应用领域里面的超级引擎,其中的OnlineDraw图形编辑器在Web上应用非常广泛,服务不断前进,在技术与质量上赢得了众多合作伙伴的心。OnlineDraw图形编辑器主要特点是: 1.包含编辑与运行状态,可以任意操纵与控制图形变化,实现各种仿真与建模。 2.图形和图库是统一的XML格式,便于传输、存储和维护,支持WEB开发。 3.响应众多的图形操作事件,任意给图形添加属性成函数,任意自定义图形。 4.可以建立和分析图形间的任意拓朴连接关系,实现各种逻辑运算与控制。 5.内含面向对象的Visual Graph脚本语言,简洁易用的COM类库接口。 6.每个图形都是对象,拥有众多的属性和函数,可以方便地编辑和操纵。 7.支持报表开发,表格高度智能,可以制作超酷图形界面,轻松换肤。 8.非常容易地开发出任何复杂变化的图形,轻松实现自己的图形库。 9.技术完善:多页面、多图层、表格图形混排、透明度、自由旋转、动画效果、自定义线型、网纹、箭头、自定义任意多个文字标注、自定义图元连接点、自定义光标、图形保护、控制点,支持图形的逻辑分组,允许图元嵌套构建更复杂的图元。 10.混合编程:不仅其他程序可以操控Visual Graph的一切,而且Visual Graph的脚本可以调用其他语言的程序,也可以调用DLL,任意扩充内部函数,扩展功能。脚本语言的编程习惯和一般语言相同,各种属性、函数名称也都相同。 尺寸小、速度快,运行稳定,能适应工业上机器常年工作等环境;能轻松作出工业上的各种动作设备以及常用的曲线图、棒图、尺寸线,实现工业的过程监控;能让软件公司在短时间内开发出高质量的组态监控软件。
webtopo-svg-edit是一款基于Web的拓扑图编辑工具,它提供了一个简单易用的界面,帮助用户创建、编辑和分享各种拓扑图。用户可以通过拖拽和连接各种元素来构建自己的网络拓扑图,比如计算机网络、物联网设备、数据中心架构等。该工具使用SVG(Scalable Vector Graphics)作为图形格式,这意味着用户可以无限放大图像而不会失真,同时也支持各种颜色、样式和形状的定制。 webtopo-svg-edit具有丰富的功能,包括但不限于: 1. 图形编辑:用户可以添加、删除、移动和编辑各种形状和文本,并进行颜色、线条样式等属性的设置。 2. 连接元素:用户可以通过简单的拖拽和连接操作将不同的图形元素连接在一起,形成完整的拓扑图。 3. 分组组织:用户可以将多个元素分组组织,方便整体的管理和移动。 4. 导出分享:用户可以将编辑完成的拓扑图导出为SVG格式,以便在其他应用程序或网站中使用,也可以直接通过链接分享给他人。 webtopo-svg-edit的使用非常灵活和便捷,用户无需下载安装任何软件,只需通过浏览器访问网页即可开始编辑拓扑图。它适用于网络工程师、系统管理员、教育工作者等不同领域的用户,帮助他们更直观、高效地表达和分享各种网络拓扑结构。总之,webtopo-svg-edit是一款功能强大、易用便捷的Web拓扑图编辑工具,为用户提供了丰富的功能和灵活的操作方式。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值