Ai
2 Star 0 Fork 0

hashplus/ACdream

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
can.js 1.78 KB
一键复制 编辑 原始数据 按行查看 历史
kidx 提交于 2014-06-06 11:07 +08:00 . models代码规范化
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() + '"/>');
};
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/hashplus/ACdream.git
git@gitee.com:hashplus/ACdream.git
hashplus
ACdream
ACdream
master

搜索帮助