摘要:有時候,我們需要顯示一個許多用戶組合的一個頭像,像扣扣的討論組頭像,微信的群頭像,下面是一個簡單的實現方法首先,獲取你需要的頭像圖片地址,保存在一個對象里面,例如然后可以限定組合圖片的最大個數,比如限定四個,那么久判斷數據庫里的圖片個數是否
有時候,我們需要顯示一個許多用戶組合的一個頭像,像扣扣的討論組頭像,微信的群頭像,下面是一個簡單的實現方法:
首先,獲取你需要的頭像圖片地址,保存在一個對象里面,例如:
var data = []; 然后可以限定組合圖片的最大個數,比如限定四個,那么久判斷數據庫里的圖片個數是否大于4,如果大于4,那么就取前四個,如果不大于4,那么就取完。
隨后,看注釋:
var base64 = []; //用來裝合成的圖片 var c = document_createElement_x_x("canvas"); //創建一個canvas var ctx = c.getContext("2d");//返回一個用于在畫布上繪圖的2維環境 var len = data.length; //獲取需要組合的頭像圖片的張數 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"; //設置矩形顏色 ctx.fill(); //關閉并填充該路徑
接下來就需要寫一個function開始畫:
?functiondrawing(n){ //參數n是傳入的是數字,0表示畫第一張圖片,1表示第二張。在這里先根據不同的需求設置a,b的大小?,我在這里是4張圖是極限,設置的是,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<需要組合頭像圖片個數時就不再重復這個函數 var img = new Image();? //創建一個image對象 img.src = data[n];//將圖片地址賦值給image對象的src img.onload = function(){//圖片預加載 ctx.drawImage(img, a, b, 100, 100); //在畫布上繪制image對象的圖片 drawing(n+ 1); //再執行此函數 }? }else{ //如果執行完了,也就是都畫完了,就要顯示畫好的圖像 base64.push(c.toDataURL("image/jpg")); //將畫好的圖像放入base64對象 //這里可以寫一個返回這個對象,也可以把base64賦值給一個全局變量 } }??
最后,執行這個function:
drawing(0);?
完成操作,在html頁面中的img的src里面引用base64的值,就可以顯示出來了,但是要注意,這段js要在html頁面執行之前執行,不然顯示不出來的哦
這是效果:
在這里封裝好了一個js:
function groupPic(Images, imgId) { //Images是圖片地址數組,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"); }
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/50961.html
摘要:有時候,我們需要顯示一個許多用戶組合的一個頭像,像扣扣的討論組頭像,微信的群頭像,下面是一個簡單的實現方法首先,獲取你需要的頭像圖片地址,保存在一個對象里面,例如然后可以限定組合圖片的最大個數,比如限定四個,那么久判斷數據庫里的圖片個數是否 有時候,我們需要顯示一個許多用戶組合的一個頭像,像扣扣的討論組頭像,微信的群頭像,下面是一個簡單的實現方法: 首先,獲取你需要的頭像圖片地址,保存...
摘要:在繪制琦玉的頭像時,最重要的一個屬性就是,我們用它可以畫出圓形橢圓及各種變體。以下的樣式能夠畫出琦玉的臉部形狀在調整后,可畫出眼鼻嘴的形狀介紹屬性也是一個很強大的屬性,能夠對元素做各種變形。 寫這篇博客的起因是我看了Medium上的這篇文章:How I started drawing CSS Images,然后哇哦?,同樣是前端開發,這區別怎么這么大呢?這位作者和我完全點了不同的技能點...
摘要:是一個為應用添加觸摸手勢的非常受歡迎的庫文中將看到結合一起使用是多么的簡單原文示例是針對版本經過測試在目前最新的版本中此教程依然適用文章將以來統一代稱版本名詞滑動和類似但滑動更快速無粘滯左滑右滑上滑下滑頭像輪播簡介我們將構建一個頭像輪播可以 HammerJS 是一個為 web 應用添加觸摸手勢的非常受歡迎的庫,文中,將看到 Angular 結合 HammerJS 一起使用是多么的簡單 ...
摘要:介紹結合框架作手機頁面的登錄注冊組件登錄注冊相關知識點和的作用個人理解,如果不到位,懇請指出我的電腦通過請求登錄某一個網頁,登錄成功之后,服務器會返回一個給我的電腦。 介紹 結合`vue`框架作手機H5頁面的登錄注冊組件 登錄注冊相關知識點 1.cookie和token的作用(個人理解,如果不到位,懇請指出) token: 我的電腦通過http請求登錄某一個網頁,登錄成功之后,服務...
閱讀 1642·2019-08-30 15:44
閱讀 2566·2019-08-30 11:19
閱讀 394·2019-08-30 11:06
閱讀 1557·2019-08-29 15:27
閱讀 3077·2019-08-29 13:44
閱讀 1621·2019-08-28 18:28
閱讀 2353·2019-08-28 18:17
閱讀 1978·2019-08-26 10:41