代码拉取完成,页面将自动刷新
var Canvas = require('canvas');
var getRandom = function(start, end) {
return start + Math.random() * (end - start);
};
var rand = function(a, b) {
return Math.round(Math.random() * (b - a)) + a;
}
exports.Can = function(callback) {
var W = 90;
var H = 30;
var canvas = new Canvas(W, H);
var ctx = canvas.getContext('2d');
var items = 'abcdefghjkmnpqrstuvwxyzABCDEFGHJKLMNPRSTUVWXYZ23456789'.split('');
var vcode = '';
ctx.fillStyle = '#f3fbfe';
ctx.fillRect(0, 0, 90, 30);
ctx.globalAlpha = .8;
ctx.font = '15px sans-serif';
for (var i = 0; i < 10; i++) {
ctx.fillStyle = 'rgb(' + rand(150, 225) + ',' + rand(150, 225) + ',' + rand(150, 225) + ')';
for (var j = 0; j < 5; j++) {
ctx.fillText(items[rand(0, items.length - 1)], getRandom(-10, W + 10), getRandom(-10, H + 10));
}
}
var color = 'rgb(' + rand(1, 120) + ',' + rand(1, 120) + ',' + rand(1, 120) + ')';
ctx.font = 'bold 30px sans-serif';
for (var i = 0; i < 4; i++) {
var j = rand(0, items.length - 1);
ctx.fillStyle = color;
ctx.fillText(items[j], 5 + i * 23, 25);
var a = getRandom(0.85, 0.95);
var b = getRandom(-0.04, 0.04);
var c = getRandom(-0.3, 0.3);
var d = getRandom(0.85, 1.0);
ctx.transform(a, b, c, d, 0, 0);
vcode += items[j];
}
ctx.beginPath();
ctx.strokeStyle = color;
var A = getRandom(10, H / 2);
var b = getRandom(H / 4, 3 * H / 4);
var f = getRandom(H / 4, 3 * H / 4);
var T = getRandom(H * 1.5, W);
var w = 2 * Math.PI / T;
var S = function(x) {
return A * Math.sin(w * x + f) + b;
}
ctx.lineWidth = 5;
for (var x = -20; x < 200; x += 4) {
ctx.moveTo(x, S(x));
ctx.lineTo(x + 3, S(x + 3));
}
ctx.closePath();
ctx.stroke();
return callback(vcode.toLowerCase(), '<img src="' + canvas.toDataURL() + '"/>');
};
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。