HTML5网页中SVG和Canvas以及IMG图片的转换方法

网页中显示的图片或者是图形,一般就只有几种,对于静态的内容,大多会选择jpg、png、gif的图片,这些图片称之为位图,放大以后会出现锯齿,也是不易更改的图形,如果想要实现放大和更准确的显示图形,svg和canvas会是更好的选择,不过使用canvas可能会遇到兼容问题。

一般的图表都是采用矢量可绘制的格式图片,当然也有使用Flash技术的,对于浏览器兼容来说,很难满足既有足够的精确度,而图形足够小方便传输,不过有一种解决方法,就是将这些图形进行转换,今天就给大家说说HTML5网页中SVG和Canvas以及IMG图片的转换方法。

SVG转换为Canvas

假设我们有以下的一段svg代码

<div id="svgContainer"> 
    <svg id="svg"></svg> 
</div>

首先需要获取svg标签以及内容:

<script>
var svgHtml = document.getElementById('svgContainer').innerHTML();
</script>

将svg转成canvas需要用到google的一个插件canvg,可以上官网下载,也可以直接远程引用进来
接下来就是调用该插件的canvg(canvasId,svgHtml)方法来转成canvas,这个方法第一个参数就是canvas标签的id,第二个自然就是svg标签内容了,就这样,svg转成了canvas。

<canvas id="canvasId"></canvas>
<script>
canvasId = document.getElementById('canvasId');
canvg(canvasId,svgHtml)
</script>

Canvas转换为图片

然后就是将canvas转成图片了,这个更加简单了

var imgSrc = document.getElementById(canvasId).toDataUrl("image/png");

这其实是将canvas转成了图片,并返回图片的所有内容数据,如下即可显示图片:

<img src='' id='myImg' />
<script>
document.getElementById('myImg').src = imgSrc;
</script>

这就是HTML5网页中SVG和Canvas以及IMG图片的转换方法,这个还是很有用的,因为不同的浏览器对svg和canvas的支持不同,这样的话,至少我们的控件总有方式能够正确显示,即使我们最后只能使用图片。

时间: 2024-09-20 00:49:02

HTML5网页中SVG和Canvas以及IMG图片的转换方法的相关文章

在网页中调用一个flash动画,图片有黑边怎么去除?

问题描述 在网页中调用一个flash动画,图片有黑边怎么去除?

在网页中动态的生成一个gif图片

大家知道股票网站的K线图是动态生成的定时刷新PHP 就有动态生成图片的功能     那么怎样用asp.net在网页中动态的生成一个图片呢?     下面我要举的例子是动态的生成一个图片显示当前时间     namespace Wmj     {     using System;     using System.Drawing;     using System.Web.UI;           public class MyTempImage : Page      {      publ

Nodejs进阶:如何将图片转成datauri嵌入到网页中去

问题:将图片转成datauri 今天,在QQ群有个群友问了个问题:"nodejs读取图片,转成base64,怎么读取呢?" 想了一下,他想问的应该是 怎么样把图片嵌入到网页中去,即如何把图片转成对应的 datauri. 是个不错的问题,而且也是个很常用的功能.快速实现了个简单的demo,这里顺便记录一下. 实现思路 思路很直观:1.读取图片二进制数据 -> 2.转成base64字符串 -> 3.转成datauri. 关于base64的介绍,可以参考阮一峰老师的文章.而 da

三天学会HTML5——SVG和Canvas的使用

在第一天学习了HTML5的一些非常重要的基本知识,今天将进行更深层学习 首先来回顾第一天学习的内容,第一天学习了新标签,新控件,验证功能,应用缓存等内容. 第2天将学习如何使用Canvas 和使用SVG 实现功能   Lab1-- 使用Canvas Canvas 是指定了长度和宽度的矩形画布,我们将使用新的HTML5 JavaScript,可使用HTML5 JS API 来画出各种图形. 初始化 1. 创建HTML页面 <html> <head></head> <

《HTML5 开发实例大全》——1.21 在网页中突出显示某些文字

1.21 在网页中突出显示某些文字 https://yqfile.alicdn.com/3a46b22148d673e5df7bfc45f9fb868a5efa8dde.png" > 实例说明 在HTML页面中,经常需要展示的一段文章或文字称为文本内容.为了使文本内容更加形象.生动,需要增加一些特殊功能的元素,用于突出文本间的层次关系或标为重点,我们将这样的元素称为文本层次语义标记. 在HTML 5中,通过元素< time >.< mark >和< cite

《HTML5 开发实例大全》——1.23 在网页中显示一幅图片

1.23 在网页中显示一幅图片 实例说明 在HTML 5页面中,除了显示文档或字符外,还经常需要放入一些其他元素,例如图片< img >.页面< iframe >和多媒体< object >等.这些元素对于整个DOM文档来说,属于嵌入内容.其中< img >元素的功能是在页面中导入一幅图像,它是页面开发中使用较为频繁的一个元素.在HTML 5中,该元素的"border"."align"."hspace&quo

html5中怎么在canvas中画一个二叉树?

问题描述 html5中怎么在canvas中画一个二叉树? 是否用到递归??????? 具体怎么实现??????? 谢谢 解决方案 用递归就可以画出来 解决方案二: HTML5 canvas画的摇摆的树HTML5开发Canvas递归画树HTML5之Canvas画正方形

ios 嵌套html5网页,&amp;amp;lt;input type=&amp;amp;quot;file&amp;amp;quot;&amp;amp;gt;。在ipad中选择打开相机照相后,页面刷新了

问题描述 ios嵌套html5网页,<inputtype="file">.在ipad中选择打开相机照相后,页面刷新了.在ipad浏览器中直接浏览就可以获得图片,网页也不会刷新. 解决方案 解决方案二:没有明白楼主问的是什么,还是楼主在讲述自己是怎么完成的解决方案三:我也碰到了,页面第一次使用相机就这样,第二次就不会,暂时没找到解决办法.解决方案四:感觉好像是说在ipad上获取图片时,先用相机拍照,这时候会刷新页面--

《HTML5 开发实例大全》——1.20 分组列表显示网页中的内容

1.20 分组列表显示网页中的内容 实例说明 在传统的HTML标记语言中,可以通过< ul >.< ol >.< dl >元素实现分组效果.在全新的HTML 5中,对原有的分组内容元素< ul >.< ol >.< dl >进行了整体改良,有的元素增加了许多新的属性,有的元素则废除了一些不合理的原有特征. (1)< ul >元素. 在HTML 5中,< ul >元素用于定义页面中的无序列表,其用法与HTML 4