亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

js中canvas怎么實現5張圖片合成一張圖片

發布時間:2021-05-12 12:54:39 來源:億速云 閱讀:476 作者:小新 欄目:web開發

這篇文章主要介紹js中canvas怎么實現5張圖片合成一張圖片,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

具體要實現的效果類似下面這張圖片,主題流程大概是,頁面上有類似這樣布局的結構,點擊中間那個紫色的按鈕就會生成一張這樣的圖片,并且能夠讓用戶下載圖片的

js中canvas怎么實現5張圖片合成一張圖片

1、首先我們布局頁面的時候用的都是圖片來布局成這個樣子[CSS自己腦補],class為pho-bg這一段是頁面開始顯示的結構,幾張圖片定位,按鈕在中間的樣子。class為photo的就是用來到時候放置生成的圖片。canvas就是畫布。至于下面的兩張圖片其實就是按鈕的圖片和背景圖,到時候一并加入畫布里面【不過在頁面的時候不顯示】

 <div class="pho-bg">
 <img src="ossweb-img/man-1.png" class="man man-1" id="man-1" alt="">
 <img src="ossweb-img/man-2.png" class="man man-2" id="man-2" alt="">
 <img src="ossweb-img/man-3.png" class="man man-3" id="man-3" alt="">
 <img src="ossweb-img/man-4.png" class="man man-4" id="man-4" alt="">
 <a href="javascript:;" class="btn" title=""></a>
 <img src="ossweb-img/sen.png" class="sen1" id="sen1" alt="">
 <img id="show-pic" alt="">
 </div>
 <div class="photo"></div>
 <canvas id="myCanvas" width="750" height="1180"></canvas>
 <img src="ossweb-img/bg1.jpg" id="bg1" alt="">
 <img src="ossweb-img/btn.png" id="btn1" alt="">

2、重要的是js部分,這里面有幾個部分

  • 在點擊按鈕時隱藏掉本來的頁面,顯示畫布生成的圖片

  • canvas.width,canvas.height是設置你生成的圖片的大小。舉個例子:如果我在canvas的html標簽里面設置的width=750,height=1180,但是在js里面設置了canvas.width=500,canvas.height=500,那么生成的圖片的大小就會是500*500.

  • 使用createPattern來制作圖片的背景圖

  • 使用drawImage()來制作組成圖片的小元素也就是紅、黃、藍、綠、紫那幾張圖片

  • 最后用toDataURL()將畫布的內容轉為圖片并且渲染到頁面上

$('.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加入畫布
 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);
 
 });

最后的結果生成的圖片就是這樣子的

js中canvas怎么實現5張圖片合成一張圖片

以上是“js中canvas怎么實現5張圖片合成一張圖片”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

舞阳县| 赤水市| 宁武县| 区。| 汉寿县| 新竹县| 邯郸县| 闵行区| 平邑县| 仪征市| 高淳县| 岐山县| 宁津县| 依兰县| 安宁市| 徐州市| 安乡县| 介休市| 琼海市| 香港| 灵璧县| 光山县| 昭苏县| 修武县| 儋州市| 咸丰县| 台州市| 清河县| 靖州| 巫溪县| 凤山县| 郧西县| 泊头市| 简阳市| 宁国市| 昭苏县| 正镶白旗| 科技| 肇庆市| 湟中县| 朝阳县|