知識
不管是網(wǎng)站,軟件還是小程序,都要直接或間接能為您產(chǎn)生價值,我們在追求其視覺表現(xiàn)的同時,更側(cè)重于功能的便捷,營銷的便利,運營的高效,讓網(wǎng)站成為營銷工具,讓軟件能切實提升企業(yè)內(nèi)部管理水平和效率。優(yōu)秀的程序為后期升級提供便捷的支持!
您當(dāng)前位置>首頁 » 新聞資訊 » 小程序相關(guān) >
繪制二維碼添加中間頭像Logo
發(fā)表時間:2021-3-31
發(fā)布人:葵宇科技
瀏覽次數(shù):81
onLoad: function (options) {
/**
* 繪制帶logo二維碼
* @param url 二維碼字符串 如 https://github.com/xlsn0w
* @param canvas-id 畫布ID 如 logoQRCode
* @param width 二維碼寬度 如 275
* @param height 二維碼高度 如 275
* @param logo 二維碼logo 如 /images/xlsn0w.png
*/
QRCodeJS.qrApi.draw('https://github.com/xlsn0w', "logoQRCode", 275, 275, null, '/images/xlsn0w.png');
}
代碼
var drawImg = function (src, width,ctx) {
var imgSize = width / 5;
var imgPos = width / 10 * 4;
var imgPosFix = width / 120;
ctx.strokeStyle = '#fff';
ctx.lineWidth = 1;
ctx.globalAlpha = 0.8;
ctx.lineCap = "round";
ctx.lineJoin = "round";
ctx.beginPath();
ctx.moveTo(imgPos - imgPosFix, imgPos - imgPosFix);
ctx.lineTo(imgPos + imgSize + imgPosFix, imgPos - imgPosFix);
ctx.lineTo(imgPos + imgSize + imgPosFix, imgPos + imgSize + imgPosFix);
ctx.lineTo(imgPos - imgPosFix, imgPos + imgSize + imgPosFix);
ctx.lineTo(imgPos - imgPosFix, imgPos - imgPosFix);
ctx.stroke();
ctx.closePath();
ctx.drawImage(src, imgPos, imgPos, imgSize, imgSize);
ctx.beginPath();
}
var _canvas = null;
var api = {
get ecclevel() {
return ecclevel;
},
set ecclevel(val) {
ecclevel = val;
},
get size() {
return _size;
},
set size(val) {
_size = val
},
get canvas() {
return _canvas;
},
set canvas(el) {
_canvas = el;
},
getFrame: function (string) {
return genframe(string);
},
//這里的utf16to8(str)是對Text中的字符串進行轉(zhuǎn)碼,讓其支持中文
utf16to8: function (str) {
var out, i, len, c;
out = "";
len = str.length;
for (i = 0; i < len; i++) {
c = str.charCodeAt(i);
if ((c >= 0x0001) && (c <= 0x007F)) {
out += str.charAt(i);
} else if (c > 0x07FF) {
out += String.fromCharCode(0xE0 | ((c >> 12) & 0x0F));
out += String.fromCharCode(0x80 | ((c >> 6) & 0x3F));
out += String.fromCharCode(0x80 | ((c >> 0) & 0x3F));
} else {
out += String.fromCharCode(0xC0 | ((c >> 6) & 0x1F));
out += String.fromCharCode(0x80 | ((c >> 0) & 0x3F));
}
}
return out;
},
draw: function (str, canvas, cavW, cavH, ecc,src) {
ecclevel = ecc || ecclevel;
canvas = canvas || _canvas;
if (!canvas) {
console.warn('No canvas provided to draw QR code in!')
return;
}
var size = Math.min(cavW, cavH);
str = this.utf16to8(str);//增加中文顯示
//console.log(str)
var frame = this.getFrame(str),
ctx = wx.createCanvasContext(canvas),
px = Math.round(size / (width + 8));
var roundedSize = px * (width + 8),
offset = Math.floor((size - roundedSize) / 2);
size = roundedSize;
ctx.clearRect(0, 0, cavW, cavW);
ctx.setFillStyle('#000000');
for (var i = 0; i < width; i++) {
for (var j = 0; j < width; j++) {
if (frame[j * width + i]) {
ctx.fillRect(px * (4 + i) + offset, px * (4 + j) + offset, px, px);
}
}
}
drawImg(src, cavW,ctx);
ctx.draw();
}
}
相關(guān)案例查看更多
相關(guān)閱讀
- 云南小程序開發(fā)報價
- 云南網(wǎng)站優(yōu)化公司
- 報廢車拆解管理系統(tǒng)
- 云南小程序被騙
- 云南小程序開發(fā)費用
- 用戶登錄
- 定制小程序開發(fā)
- 搜索引擎排名
- 云南網(wǎng)站建設(shè)價格
- 做網(wǎng)站
- 云南網(wǎng)站建設(shè)制作
- 小程序設(shè)計
- 百度推廣
- 生成海報
- 搜索引擎自然排名
- 區(qū)塊鏈
- 報廢車回收管理軟件
- 云南做百度小程序的公司
- 網(wǎng)站建設(shè)價格
- 云南網(wǎng)站建設(shè)快速優(yōu)化
- 云南網(wǎng)站建設(shè)首選公司
- 汽車報廢
- 退款
- 汽車報廢管理
- 網(wǎng)站收錄
- 網(wǎng)絡(luò)公司報價
- 制作一個小程序
- 正規(guī)網(wǎng)站建設(shè)公司
- 高端網(wǎng)站建設(shè)公司
- 小程序被騙退款成功