国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > HTML > 正文

html5中svg canvas和圖片之間相互轉(zhuǎn)化思路代碼

2024-08-26 00:17:24
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

點(diǎn)評(píng):需要把網(wǎng)頁(yè)部分內(nèi)容做正文,并把原網(wǎng)頁(yè)轉(zhuǎn)成pdf作為附件,發(fā)送郵件給boss,將svg轉(zhuǎn)成canvas顯示,但是后來(lái)發(fā)現(xiàn)canvas也無(wú)法正常顯示,最后不得已,只能將canvas標(biāo)簽再一次轉(zhuǎn)成圖片格式

最近有個(gè)需求,需要把網(wǎng)頁(yè)部分內(nèi)容做正文,并把原網(wǎng)頁(yè)轉(zhuǎn)成pdf作為附件,發(fā)送郵件給boss。由于我們這是報(bào)表類(lèi)型的網(wǎng)站,在html5中控件開(kāi)發(fā)無(wú)非就是canvas或者是svg,這里我們有幾個(gè)控件是用svg,而svg在FoxMail郵件正文中無(wú)法正常顯示,于是考慮將svg轉(zhuǎn)成canvas顯示,但是后來(lái)發(fā)現(xiàn)canvas也無(wú)法正常顯示,最后不得已,只能將canvas標(biāo)簽再一次轉(zhuǎn)成圖片格式,終于解決了這個(gè)問(wèn)題。下面就簡(jiǎn)單介紹一下實(shí)現(xiàn)過(guò)程。如下是一個(gè)svg標(biāo)簽

復(fù)制代碼

代碼如下:


<div>
<svg></svg>
</div>


首先需要獲取svg標(biāo)簽以及內(nèi)容:

var svgHtml = svgContainer.innerHTML();

將svg轉(zhuǎn)成canvas需要用到google的一個(gè)插件canvg,可以上官網(wǎng)下載,也可以直接遠(yuǎn)程引用進(jìn)來(lái)

接下來(lái)就是調(diào)用該插件的canvg(canvasId,svgHtml)方法來(lái)轉(zhuǎn)成canvas,這個(gè)方法第一個(gè)參數(shù)就是canvas標(biāo)簽的id,第二個(gè)自然就是svg標(biāo)簽內(nèi)容了,就這樣,svg轉(zhuǎn)成了canvas

然后就是將canvas轉(zhuǎn)成圖片了,這個(gè)更加簡(jiǎn)單了

var imgSrc = document.getElementById(canvasId).toDataUrl("image/png");//這其實(shí)是將canvas轉(zhuǎn)成了圖片,并返回圖片的所有內(nèi)容數(shù)據(jù),如下即可顯示圖片:

復(fù)制代碼

代碼如下:


<img src=imgSrc />


這就是從svg->canvas->image的實(shí)現(xiàn)方法了,這個(gè)還是很有用的,因?yàn)椴煌臑g覽器對(duì)svg和canvas的支持不同,這樣的話,至少我們的控件總有方式能夠正確顯示,即使我們最后只能使用圖片。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 蓬溪县| 上栗县| 苏尼特左旗| 正蓝旗| 长治县| 皮山县| 高碑店市| 广汉市| 临漳县| 宣汉县| 洛扎县| 扎囊县| 德州市| 驻马店市| 鄢陵县| 漳浦县| 维西| 无棣县| 昌平区| 得荣县| 阳曲县| 泗洪县| 德钦县| 页游| 都匀市| 遂平县| 城口县| 田东县| 思茅市| 鄂尔多斯市| 莎车县| 马山县| 丹东市| 车致| 吉首市| 阜新| 石家庄市| 民权县| 乐至县| 鹤峰县| 祁门县|