這篇文章主要介紹js中canvas怎么實(shí)現(xiàn)5張圖片合成一張圖片,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!
創(chuàng)新互聯(lián)公司專(zhuān)注于企業(yè)成都營(yíng)銷(xiāo)網(wǎng)站建設(shè)、網(wǎng)站重做改版、桐鄉(xiāng)網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、H5響應(yīng)式網(wǎng)站、商城系統(tǒng)網(wǎng)站開(kāi)發(fā)、集團(tuán)公司官網(wǎng)建設(shè)、成都外貿(mào)網(wǎng)站制作、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁(yè)設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性價(jià)比高,為桐鄉(xiāng)等各大城市提供網(wǎng)站開(kāi)發(fā)制作服務(wù)。
具體要實(shí)現(xiàn)的效果類(lèi)似下面這張圖片,主題流程大概是,頁(yè)面上有類(lèi)似這樣布局的結(jié)構(gòu),點(diǎn)擊中間那個(gè)紫色的按鈕就會(huì)生成一張這樣的圖片,并且能夠讓用戶下載圖片的
1、首先我們布局頁(yè)面的時(shí)候用的都是圖片來(lái)布局成這個(gè)樣子[CSS自己腦補(bǔ)],class為pho-bg這一段是頁(yè)面開(kāi)始顯示的結(jié)構(gòu),幾張圖片定位,按鈕在中間的樣子。class為photo的就是用來(lái)到時(shí)候放置生成的圖片。canvas就是畫(huà)布。至于下面的兩張圖片其實(shí)就是按鈕的圖片和背景圖,到時(shí)候一并加入畫(huà)布里面【不過(guò)在頁(yè)面的時(shí)候不顯示】
2、重要的是js部分,這里面有幾個(gè)部分
在點(diǎn)擊按鈕時(shí)隱藏掉本來(lái)的頁(yè)面,顯示畫(huà)布生成的圖片
canvas.width,canvas.height是設(shè)置你生成的圖片的大小。舉個(gè)例子:如果我在canvas的html標(biāo)簽里面設(shè)置的width=750,height=1180,但是在js里面設(shè)置了canvas.width=500,canvas.height=500,那么生成的圖片的大小就會(huì)是500*500.
使用createPattern來(lái)制作圖片的背景圖
使用drawImage()來(lái)制作組成圖片的小元素也就是紅、黃、藍(lán)、綠、紫那幾張圖片
最后用toDataURL()將畫(huà)布的內(nèi)容轉(zhuǎn)為圖片并且渲染到頁(yè)面上
$('.btn').click(function() { $('.pho-bg').hide(); // $('#myCanvas').show(); var man1 = document.getElementById("man-1"), man2 = document.getElementById("man-2"), man3 = document.getElementById("man-3"), man4 = document.getElementById("man-4"), sen1 = document.getElementById("sen1"), btn1 = document.getElementById("btn1"), canvasBg = document.getElementById("bg1"); var canvas = document.getElementById("myCanvas"); ctx = canvas.getContext("2d"); canvas.width = 750; canvas.height = 1180; // 制作背景圖 var patBg = ctx.createPattern(canvasBg, "repeat"); ctx.rect(0, 0, 750, 1180); ctx.fillStyle = patBg; ctx.fill(); // 將man1,man2,man3,man4,sen1,btn加入畫(huà)布 ctx.drawImage(man1, 0, 0, 341, 474); ctx.drawImage(man2, 410, 0, 341, 474); ctx.drawImage(man3, 0, 474, 341, 474); ctx.drawImage(man4, 410, 474, 341, 474); ctx.drawImage(sen1, 40, 950, 669, 109); ctx.drawImage(btn1, 150, 350, 449, 288); var newImg = new Image(); newImg.src = canvas.toDataURL("image/png"); $('.photo').append(newImg); });
最后的結(jié)果生成的圖片就是這樣子的
以上是“js中canvas怎么實(shí)現(xiàn)5張圖片合成一張圖片”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!