js實(shí)現(xiàn)canvas圖片與img圖片的相互轉(zhuǎn)換的示例
最近在一個(gè)項(xiàng)目中,遇到了一個(gè)問(wèn)題,需要把生成的canvas形式的二維碼轉(zhuǎn)換為圖片,可以長(zhǎng)按識(shí)別,保存等。查找了一些資料歸納總結(jié)了一些知識(shí)。
默認(rèn)在jq庫(kù)里進(jìn)行,引入jquery.qrcode.min.js庫(kù),將canvas圖片轉(zhuǎn)化為img圖片,代碼如下,
<body> <div id="cans"></div> <div id="img"></div> </body> <script> //生成canvas形式的二維碼 $("#cans").qrcode({ width:150, height:150, text:'http://www.cnblogs.com/dxzg/p/6424855.html'//需要生成的內(nèi)容 }); //從 canvas 提取圖片 image function convertCanvasToImage(canvas) { //新Image對(duì)象,可以理解為DOM var image = new Image(); // canvas.toDataURL 返回的是一串Base64編碼的URL // 指定格式 PNG image.src = canvas.toDataURL("image/png"); return image; } //獲取網(wǎng)頁(yè)中的canvas對(duì)象 var mycans=$('canvas')[0]; //調(diào)用convertCanvasToImage函數(shù)將canvas轉(zhuǎn)化為img形式 var img=convertCanvasToImage(mycans); //將img插入容器 $('#img').append(img); </script>
同理也可以將圖片轉(zhuǎn)換為canvas,轉(zhuǎn)換函數(shù)如下:
// 把image 轉(zhuǎn)換為 canvas對(duì)象 function convertImageToCanvas(image) { // 創(chuàng)建canvas DOM元素,并設(shè)置其寬高和圖片一樣 var canvas = document.createElement("canvas"); canvas.width = image.width; canvas.height = image.height; // 坐標(biāo)(0,0) 表示從此處開(kāi)始繪制,相當(dāng)于偏移。 canvas.getContext("2d").drawImage(image, 0, 0); return canvas; }
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- js canvas實(shí)現(xiàn)5張圖片合成一張圖片
- js canvas實(shí)現(xiàn)二維碼和圖片合成的海報(bào)
- JavaScript+Canvas實(shí)現(xiàn)彩色圖片轉(zhuǎn)換成黑白圖片的方法分析
- JS和Canvas實(shí)現(xiàn)圖片的預(yù)覽壓縮和上傳功能
- js HTML5 canvas繪制圖片的方法
- JS HTML圖片顯示Canvas 壓縮功能
- js canvas實(shí)現(xiàn)放大鏡查看圖片功能
- js+html5繪制圖片到canvas的方法
- javascript結(jié)合canvas實(shí)現(xiàn)圖片旋轉(zhuǎn)效果
- 使用JavaScript+canvas實(shí)現(xiàn)圖片裁剪
- js+canvas實(shí)現(xiàn)兩張圖片合并成一張圖片的方法
相關(guān)文章
javascript 正則表達(dá)式觸發(fā)函數(shù)進(jìn)行高級(jí)替換
如果在正則表達(dá)式中定義了子匹配,那么參數(shù)的長(zhǎng)度會(huì)隨著子匹配的個(gè)數(shù)改變,如果沒(méi)有定義子匹配,那么長(zhǎng)度是固定的。2010-03-03JavaScipt驗(yàn)證URL新方法詳解(2023 年版)
這篇文章主要為大家介紹了JavaScipt驗(yàn)證URL新方法示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-12-12JavaScript中async與await實(shí)現(xiàn)原理與細(xì)節(jié)
這篇文章主要介紹了JavaScript中async與await實(shí)現(xiàn)原理與細(xì)節(jié),文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-09-09JS/jQuery實(shí)現(xiàn)DIV延時(shí)幾秒后消失或顯示的方法
這篇文章主要介紹了JS/jQuery實(shí)現(xiàn)DIV延時(shí)幾秒后消失或顯示的方法,結(jié)合實(shí)例形式分析了javascript使用setTimeout及jQuery使用delay方法實(shí)現(xiàn)延遲顯示功能的相關(guān)操作技巧,需要的朋友可以參考下2018-02-02js實(shí)現(xiàn)文字垂直滾動(dòng)和鼠標(biāo)懸停效果
這篇文章主要介紹了js實(shí)現(xiàn)文字垂直滾動(dòng)和鼠標(biāo)懸停效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2015-12-12基于BootStrap Metronic開(kāi)發(fā)框架經(jīng)驗(yàn)小結(jié)【八】框架功能總體界面介紹
這篇文章主要介紹了基于BootStrap Metronic開(kāi)發(fā)框架經(jīng)驗(yàn)小結(jié)【八】框架功能總體界面介紹 的相關(guān)資料,需要的朋友可以參考下2016-05-05js中split()方法得到的數(shù)組長(zhǎng)度問(wèn)題
split() 方法用于把一個(gè)字符串分割成字符串?dāng)?shù)組。這篇文章給大家介紹js中split()方法得到的數(shù)組長(zhǎng)度問(wèn)題,感興趣的朋友一起看看吧2018-07-07