欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

js canvas實(shí)現(xiàn)5張圖片合成一張圖片

 更新時(shí)間:2019年07月15日 14:59:45   作者:ChorKiu  
這篇文章主要為大家詳細(xì)介紹了js canvas實(shí)現(xiàn)5張圖片合成一張圖片,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文具體要實(shí)現(xiàn)的效果類似下面這張圖片,主題流程大概是,頁面上有類似這樣布局的結(jié)構(gòu),點(diǎn)擊中間那個(gè)紫色的按鈕就會(huì)生成一張這樣的圖片,并且能夠讓用戶下載圖片的

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

 <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部分,這里面有幾個(gè)部分

  • 在點(diǎn)擊按鈕時(shí)隱藏掉本來的頁面,顯示畫布生成的圖片
  • 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來制作圖片的背景圖
  • 使用drawImage()來制作組成圖片的小元素也就是紅、黃、藍(lán)、綠、紫那幾張圖片
  • 最后用toDataURL()將畫布的內(nèi)容轉(zhuǎn)為圖片并且渲染到頁面上
$('.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);
 
 });

最后的結(jié)果生成的圖片就是這樣子的

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 微信小程序之判斷頁面滾動(dòng)方向的示例代碼

    微信小程序之判斷頁面滾動(dòng)方向的示例代碼

    這篇文章主要介紹了微信小程序之判斷頁面滾動(dòng)方向的示例代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-08-08
  • Javascript 函數(shù)的四種調(diào)用模式

    Javascript 函數(shù)的四種調(diào)用模式

    這篇文章主要介紹了Javascript 函數(shù)的四種調(diào)用模式的相關(guān)資料,需要的朋友可以參考下
    2016-11-11
  • 為什么JS中eval處理JSON數(shù)據(jù)要加括號(hào)

    為什么JS中eval處理JSON數(shù)據(jù)要加括號(hào)

    這篇文章主要介紹了為什么JS中eval處理JSON數(shù)據(jù)要加括號(hào)的相關(guān)資料,需要的朋友可以參考下
    2015-04-04
  • Web制作驗(yàn)證碼功能實(shí)例代碼

    Web制作驗(yàn)證碼功能實(shí)例代碼

    web開發(fā)中,經(jīng)常會(huì)使用驗(yàn)證碼功能,例如登錄、注冊(cè),或其他關(guān)鍵功能之前經(jīng)常會(huì)使用。下面通過實(shí)例代碼給大家介紹Web制作驗(yàn)證碼功能實(shí)例代碼,感興趣的朋友一起看看吧
    2017-06-06
  • 微信小程序wepy框架學(xué)習(xí)和使用心得詳解

    微信小程序wepy框架學(xué)習(xí)和使用心得詳解

    這篇文章主要介紹了微信小程序wepy框架學(xué)習(xí)和使用心得詳解,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2019-05-05
  • 如何獲取TypeScript的聲明文件.d.ts

    如何獲取TypeScript的聲明文件.d.ts

    這篇文章主要介紹了如何獲取TypeScript的聲明文件.d.ts 的相關(guān)知識(shí),非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友參考下
    2018-05-05
  • javascript中基本類型和引用類型的區(qū)別分析

    javascript中基本類型和引用類型的區(qū)別分析

    大多數(shù)人系統(tǒng)學(xué)習(xí)過的程序設(shè)計(jì)語言,在這些語言的學(xué)習(xí)過程中最早學(xué)到的幾個(gè)要點(diǎn)之一就是值類型和引用類型的區(qū)別。下面我們來看一下在 JavaScript 中基本數(shù)據(jù)類型(Primitive Types)和引用類型(Reference Types)的區(qū)別。
    2015-05-05
  • js動(dòng)態(tài)創(chuàng)建及移除div的方法

    js動(dòng)態(tài)創(chuàng)建及移除div的方法

    這篇文章主要介紹了js動(dòng)態(tài)創(chuàng)建及移除div的方法,涉及javascript針對(duì)頁面元素的動(dòng)態(tài)操作技巧,需要的朋友可以參考下
    2015-06-06
  • js sort 二維數(shù)組排序的用法小結(jié)

    js sort 二維數(shù)組排序的用法小結(jié)

    我們知道在js中默認(rèn)提供了sort函數(shù),但是這個(gè)函數(shù)默認(rèn)是按照數(shù)組內(nèi)容的ascii碼升序進(jìn)行排列的,如果我們要對(duì)二維數(shù)組排序要如何做呢
    2014-01-01
  • JavaScript實(shí)現(xiàn)前端實(shí)時(shí)搜索功能

    JavaScript實(shí)現(xiàn)前端實(shí)時(shí)搜索功能

    這篇文章主要為大家詳細(xì)介紹了JavaScript實(shí)現(xiàn)前端實(shí)時(shí)搜索功能 ,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-04-04

最新評(píng)論