云函数安装部署完canvas
安装没有发生问题,一切正常
但是调用云函数后,一直报错,错误代码如下:
实在不知道怎么办了,请各位大神指点!!!!感激不尽!
同时提供云函数的源码,源码其实不完整,主要是想运行看看,不知道是源码的问题,还是canvas包安装的问题?
// 云函数入口文件
const cloud = require('wx-server-sdk')
const { createCanvas, loadImage } = require('canvas')
cloud.init({
env: 'cloud1-7g1pdoii23b288bf'
})
// 云函数入口函数
exports.main = async (event, context) => {
console.log(event)
//开始绘制--------------------------------------------------------------------
const canvas = createCanvas(400, 400)
const ctx = canvas.getContext('2d')
// Canvas 画布的实际绘制宽高
const renderWidth = 400
const renderHeight = 400
// 绘制前清空画布
ctx.clearRect(0, 0, renderWidth, renderHeight)
// 绘制印章边框
var width = renderWidth/2
var height = renderHeight/2
console.log('width:',width)
console.log('height:',height)
ctx.lineWidth=2
ctx.strokeStyle="#f00"
ctx.arc(width,height,78,0,Math.PI*2);
ctx.stroke()
//画五角星
create5star(ctx,width,height,25,"#f00",0);
// 绘制印章单位
var company = event.seal
console.log('company:',company)
ctx.translate(width,height);// 平移到此位置,
ctx.font = '20px NSimSun'
ctx.fillStyle="#f00";
var count = company.length;// 字数
console.log('字数:',count)
var angle = 4*Math.PI/(3*(count - 1));// 字间角度
var chars = company.split("");
var c;
// ctx.transform(1,0,0,0,0,0)
for (var i = 0; i < count; i++){
c = chars[i];// 需要绘制的字符
if(i==0)
ctx.rotate(5*Math.PI/6);
else
ctx.rotate(angle);
ctx.save();
ctx.translate(60, 0);// 平移到此位置,此时字和x轴垂直
ctx.rotate(Math.PI/2);// 旋转90度,让字平行于x轴
ctx.fillText(c,-10, 5);// 此点为字的中心点
ctx.restore();
}
console.log('绘制结束')
//绘制五角星
function create5star(ctx,sx,sy,radius,color,rotato){
ctx.save();
ctx.fillStyle=color;
ctx.translate(sx,sy);//移动坐标原点
ctx.rotate(Math.PI+rotato);//旋转
ctx.beginPath();//创建路径
var x = Math.sin(0);
var y= Math.cos(0);
var dig = Math.PI/5 *4;
for(var i = 0;i< 5;i++){//画五角星的五条边
var x = Math.sin(i*dig);
var y = Math.cos(i*dig);
ctx.lineTo(x*radius,y*radius);
}
ctx.closePath();
ctx.stroke();
ctx.fill();
ctx.restore();
}
//绘制结束-------------------------------------------------
return {
}
}
大佬你的这个问题解决了吗? 我现在也遇到相同的问题