成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

怎樣用js結(jié)合h5畫出多頭像組合頭像

Forest10 / 3011人閱讀

摘要:有時候,我們需要顯示一個許多用戶組合的一個頭像,像扣扣的討論組頭像,微信的群頭像,下面是一個簡單的實現(xiàn)方法首先,獲取你需要的頭像圖片地址,保存在一個對象里面,例如然后可以限定組合圖片的最大個數(shù),比如限定四個,那么久判斷數(shù)據(jù)庫里的圖片個數(shù)是否

有時候,我們需要顯示一個許多用戶組合的一個頭像,像扣扣的討論組頭像,微信的群頭像,下面是一個簡單的實現(xiàn)方法:

首先,獲取你需要的頭像圖片地址,保存在一個對象里面,例如:

var data = []; 然后可以限定組合圖片的最大個數(shù),比如限定四個,那么久判斷數(shù)據(jù)庫里的圖片個數(shù)是否大于4,如果大于4,那么就取前四個,如果不大于4,那么就取完。

隨后,看注釋:

var base64 = []; //用來裝合成的圖片

var c = document_createElement_x_x("canvas"); //創(chuàng)建一個canvas

var ctx = c.getContext("2d");//返回一個用于在畫布上繪圖的2維環(huán)境

var len = data.length; //獲取需要組合的頭像圖片的張數(shù)

var a = 0; //初始化需要組合頭像的長度

var b = 0; //初始化需要組合頭像的寬度

c.width = 290; //定義canvas畫布的寬度

c.height = 290; //定義canvas畫布的高度

ctx.rect(0, 0, c.width, c.height); //畫矩形

ctx.fillStyle = "#fff"; //設(shè)置矩形顏色

ctx.fill(); //關(guān)閉并填充該路徑

接下來就需要寫一個function開始畫:

?functiondrawing(n){

      //參數(shù)n是傳入的是數(shù)字,0表示畫第一張圖片,1表示第二張。在這里先根據(jù)不同的需求設(shè)置a,b的大小?,我在這里是4張圖是極限,設(shè)置的是,n=0時a=b=40;n=1時a=150,b=40,n=2時a=40,b=150,n=3時a=b=150

?       if(n < len){//當n<需要組合頭像圖片個數(shù)時就不再重復(fù)這個函數(shù)

             var img = new Image();? //創(chuàng)建一個image對象

              img.src = data[n];//將圖片地址賦值給image對象的src

              img.onload = function(){//圖片預(yù)加載

                    ctx.drawImage(img, a, b, 100, 100); //在畫布上繪制image對象的圖片

                     drawing(n+ 1); //再執(zhí)行此函數(shù)

             }?

       }else{ //如果執(zhí)行完了,也就是都畫完了,就要顯示畫好的圖像

             base64.push(c.toDataURL("image/jpg")); //將畫好的圖像放入base64對象

             //這里可以寫一個返回這個對象,也可以把base64賦值給一個全局變量

       }

}??

最后,執(zhí)行這個function:

drawing(0);?

完成操作,在html頁面中的img的src里面引用base64的值,就可以顯示出來了,但是要注意,這段js要在html頁面執(zhí)行之前執(zhí)行,不然顯示不出來的哦

這是效果:

在這里封裝好了一個js:

function groupPic(Images, imgId)
{
    //Images是圖片地址數(shù)組,imgId是html頁面的img標簽的id屬性值
    var base64 = [];
    var canvas = document.createElement("canvas");
    var context = canvas.getContext("2d");
    var len = Images.length;
    if (len > 9) {
        len = 9;
    }
    //len=8;
    var a = 0;
    var b = 0;

    var k = 80;
    var l = 80;
    if (len > 4) {
        k = 60;
        l = 60;
    }
    canvas.width = 290;
    canvas.height = 290;
    context.rect(0, 0, canvas.width, canvas.height);
    context.fillStyle = "#fff";
    context.fill();
    function drawing(n) {
        if (n < len) {
            if (len <= 4) {
                if (len != 3) {
                    if (n == 0) {
                        a = b = 40;
                    } else if (n == 1) {
                        a = 130;
                        b = 40;
                    } else if (n == 2) {
                        a = 40;
                        b = 130;
                    } else if (n == 3) {
                        a = b = 130;
                    }
                } else {
                    if (n == 0) {
                        a = 75;
                        b = 40;

                    } else if (n == 1) {
                        a = 40;
                        b = 130;
                    } else if (n == 2) {
                        a = 130;
                        b = 130;
                    }
                }
            }
            if (len == 5) {
                if (n == 0) {
                    a = 70;
                    b = 40;

                } else if (n == 1) {
                    a = 140;
                    b = 40;
                } else if (n == 2) {
                    a = 40;
                    b = 110;
                } else if (n == 3) {
                    a = b = 110;
                } else {
                    a = 180;
                    b = 110;
                }
            }
            if (len == 6) {
                if (n == 0) {
                    a = 40;
                    b = 40;

                } else if (n == 1) {
                    a = 110;
                    b = 40;
                } else if (n == 2) {
                    a = 180;
                    b = 40;
                } else if (n == 3) {
                    a = 40;
                    b = 110;
                } else if (n == 4) {
                    a = b = 110
                } else {
                    a = 180;
                    b = 110;
                }
            }
            if (len == 7) {
                if (n == 0) {
                    a = 110;
                    b = 40;

                } else if (n == 1) {
                    a = 40;
                    b = 110;
                } else if (n == 2) {
                    a = 110;
                    b = 110;
                } else if (n == 3) {
                    a = 180;
                    b = 110;
                } else if (n == 4) {
                    a = 40;
                    b = 180;
                } else if (n == 5) {
                    a = 110;
                    b = 180;
                } else {
                    a = b = 180;
                }
            }
            if (len == 8) {
                if (n == 0) {
                    a = 70;
                    b = 40;

                } else if (n == 1) {
                    a = 140;
                    b = 40;
                } else if (n == 2) {
                    a = 40;
                    b = 110;
                } else if (n == 3) {
                    a = 110;
                    b = 110;
                } else if (n == 4) {
                    a = 180;
                    b = 110;
                } else if (n == 5) {
                    a = 40;
                    b = 180;
                } else if (n == 6) {
                    a = 110;
                    b = 180;
                } else {
                    a = b = 180;
                }
            }
            if (len == 9) {
                if (n == 0) {
                    a = 40;
                    b = 40;

                } else if (n == 1) {
                    a = 110;
                    b = 40;
                } else if (n == 2) {
                    a = 180;
                    b = 40;
                } else if (n == 3) {
                    a = 40;
                    b = 110;
                } else if (n == 4) {
                    a = 110;
                    b = 110;
                } else if (n == 5) {
                    a = 180;
                    b = 110;
                } else if (n == 6) {
                    a = 40;
                    b = 180;
                } else if (n == 7) {
                    a = 110;
                    b = 180;
                } else {
                    a = b = 180;
                }
            }
            var img = new Image();
            img.src = Images[n];
            img.onload = function(){
                context.drawImage(img, a, b, k, l);
                drawing(n + 1);
            }
        } else {
            base64.push(canvas.toDataURL("image/jpg"));
            document.getElementById(imgId).src = base64[0];
        }
    }
    drawing(0);
}

使用方法:在html頁面中添加下面的js:

window.onload = function(){
    var Images = ["1.jpg","2.jpg","3.jpg","4.jpg"];
    var fun = groupPic;
    fun(Images, "imageId");
}

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/50961.html

相關(guān)文章

  • 怎樣js結(jié)合h5畫出多頭組合

    摘要:有時候,我們需要顯示一個許多用戶組合的一個頭像,像扣扣的討論組頭像,微信的群頭像,下面是一個簡單的實現(xiàn)方法首先,獲取你需要的頭像圖片地址,保存在一個對象里面,例如然后可以限定組合圖片的最大個數(shù),比如限定四個,那么久判斷數(shù)據(jù)庫里的圖片個數(shù)是否 有時候,我們需要顯示一個許多用戶組合的一個頭像,像扣扣的討論組頭像,微信的群頭像,下面是一個簡單的實現(xiàn)方法: 首先,獲取你需要的頭像圖片地址,保存...

    Eirunye 評論0 收藏0
  • 如何 html 和 css 畫一拳超人

    摘要:在繪制琦玉的頭像時,最重要的一個屬性就是,我們用它可以畫出圓形橢圓及各種變體。以下的樣式能夠畫出琦玉的臉部形狀在調(diào)整后,可畫出眼鼻嘴的形狀介紹屬性也是一個很強大的屬性,能夠?qū)υ刈龈鞣N變形。 寫這篇博客的起因是我看了Medium上的這篇文章:How I started drawing CSS Images,然后哇哦?,同樣是前端開發(fā),這區(qū)別怎么這么大呢?這位作者和我完全點了不同的技能點...

    wuyangchun 評論0 收藏0
  • [譯] 在 Angular 中使 HammerJS (觸摸手勢)

    摘要:是一個為應(yīng)用添加觸摸手勢的非常受歡迎的庫文中將看到結(jié)合一起使用是多么的簡單原文示例是針對版本經(jīng)過測試在目前最新的版本中此教程依然適用文章將以來統(tǒng)一代稱版本名詞滑動和類似但滑動更快速無粘滯左滑右滑上滑下滑頭像輪播簡介我們將構(gòu)建一個頭像輪播可以 HammerJS 是一個為 web 應(yīng)用添加觸摸手勢的非常受歡迎的庫,文中,將看到 Angular 結(jié)合 HammerJS 一起使用是多么的簡單 ...

    lifesimple 評論0 收藏0
  • H5頁面結(jié)合vue實現(xiàn)登錄注冊組件

    摘要:介紹結(jié)合框架作手機頁面的登錄注冊組件登錄注冊相關(guān)知識點和的作用個人理解,如果不到位,懇請指出我的電腦通過請求登錄某一個網(wǎng)頁,登錄成功之后,服務(wù)器會返回一個給我的電腦。 介紹 結(jié)合`vue`框架作手機H5頁面的登錄注冊組件 登錄注冊相關(guān)知識點 1.cookie和token的作用(個人理解,如果不到位,懇請指出) token: 我的電腦通過http請求登錄某一個網(wǎng)頁,登錄成功之后,服務(wù)...

    ygyooo 評論0 收藏0

發(fā)表評論

0條評論

Forest10

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<