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)文章
js 實(shí)現(xiàn)在離開(kāi)頁(yè)面時(shí)提醒未保存的信息(減少用戶重復(fù)操作)
在離開(kāi)頁(yè)面時(shí)判斷是否有未保存的輸入值,然后進(jìn)行提醒,接下來(lái)介紹實(shí)現(xiàn)步驟,感興趣的朋友可以了解下2013-01-01
為什么JS中eval處理JSON數(shù)據(jù)要加括號(hào)
這篇文章主要介紹了為什么JS中eval處理JSON數(shù)據(jù)要加括號(hào)的相關(guān)資料,需要的朋友可以參考下2015-04-04
微信小程序?qū)崿F(xiàn)點(diǎn)擊空白隱藏的方法示例
這篇文章主要介紹了微信小程序?qū)崿F(xiàn)點(diǎn)擊空白隱藏的方法示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-08-08
javascript實(shí)現(xiàn)鼠標(biāo)拖動(dòng)改變層大小的方法
這篇文章主要介紹了javascript實(shí)現(xiàn)鼠標(biāo)拖動(dòng)改變層大小的方法,涉及javascript操作鼠標(biāo)事件及樣式的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-04-04
JS實(shí)現(xiàn)利用兩個(gè)隊(duì)列表示一個(gè)棧的方法
這篇文章主要介紹了JS實(shí)現(xiàn)利用兩個(gè)隊(duì)列表示一個(gè)棧的方法,簡(jiǎn)單分析了使用兩個(gè)隊(duì)列表示一個(gè)棧的原理,并結(jié)合具體實(shí)例分析了javascript相關(guān)操作技巧,需要的朋友可以參考下2017-12-12
JavaScript實(shí)現(xiàn)網(wǎng)頁(yè)跨年倒計(jì)時(shí)
這篇文章主要為大家詳細(xì)介紹了JavaScript實(shí)現(xiàn)網(wǎng)頁(yè)跨年倒計(jì)時(shí),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-12-12

