主頁 > 知識(shí)庫 > html5中svg canvas和圖片之間相互轉(zhuǎn)化思路代碼

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

熱門標(biāo)簽:地圖標(biāo)注柱狀圖 四川移動(dòng)電銷外呼客戶管理系統(tǒng) 智能芯電話機(jī)器人 百度地圖標(biāo)注為什么總是封號(hào) 臨海地圖標(biāo)注app 咸陽穩(wěn)定外呼系統(tǒng)軟件 400開頭的電話好申請(qǐng)不 小朱地圖標(biāo)注 怎么做百度地圖標(biāo)注
最近有個(gè)需求,需要把網(wǎng)頁部分內(nèi)容做正文,并把原網(wǎng)頁轉(zhuǎn)成pdf作為附件,發(fā)送郵件給boss。由于我們這是報(bào)表類型的網(wǎng)站,在html5中控件開發(fā)無非就是canvas或者是svg,這里我們有幾個(gè)控件是用svg,而svg在FoxMail郵件正文中無法正常顯示,于是考慮將svg轉(zhuǎn)成canvas顯示,但是后來發(fā)現(xiàn)canvas也無法正常顯示,最后不得已,只能將canvas標(biāo)簽再一次轉(zhuǎn)成圖片格式,終于解決了這個(gè)問題。下面就簡(jiǎn)單介紹一下實(shí)現(xiàn)過程。如下是一個(gè)svg標(biāo)簽

復(fù)制代碼
代碼如下:

<div id="svgContainer">
<svg id="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)來

接下來就是調(diào)用該插件的canvg(canvasId,svgHtml)方法來轉(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的支持不同,這樣的話,至少我們的控件總有方式能夠正確顯示,即使我們最后只能使用圖片。

標(biāo)簽:南平 陜西 平頂山 黃石 山南 黃石 公主嶺

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《html5中svg canvas和圖片之間相互轉(zhuǎn)化思路代碼》,本文關(guān)鍵詞  html5,中,svg,canvas,和,圖片,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《html5中svg canvas和圖片之間相互轉(zhuǎn)化思路代碼》相關(guān)的同類信息!
  • 本頁收集關(guān)于html5中svg canvas和圖片之間相互轉(zhuǎn)化思路代碼的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章