uniapp中canvas将矩形图片绘制成圆形图片以及保存canvas到手机

废话不多说直接上代码
本次是在uniapp中操作的 但是canvas都一样
前提是你已经赋予了canvas宽高了

//先获取你的canvas 
let ctx = uni.createCanvasContext('myCanvas', this);
ctx.save();
ctx.beginPath(); //开始绘制
//先画个圆   x,y是圆心的(x,y) 坐标 r是圆的半径 第四个参数是起始角,以弧度计。(弧的圆形的三点钟位置是 0 度)  第五个参数是结束角,以弧度计  最后是绘图方向  默认是false,即顺时针
ctx.arc(x, y, r, 0, Math.PI * 2, false);
ctx.clip();//画好了圆 开始剪切  原始画布中剪切任意形状和尺寸。一旦剪切了某个区域,则所有之后的绘图都会被限制在被剪切的区域内 这也是我们要save上下文的原因
// drawImage(图片路径,x,y,绘制图像的宽度,绘制图像的高度)
//path 是用uni.getImageInfo 获取的地址
ctx.drawImage(path, x, y, width, height); // 推进去图片,必须是https图片
ctx.restore(); //恢复之前保存的绘图上下文 恢复之前保存的绘图上下午即状态 还可以继续绘制

ctx.draw(true,(ret)=>{ // draw方法 把以上内容画到 canvas 中。
	uni.canvasToTempFilePath({ // 保存canvas为图片
		canvasId: 'myCanvas',
		quality: 1,
		complete: res=> {
		// 在H5平台下,tempFilePath 为 base64, // 图片提示跨域 H5保存base64失败,APP端正常输出临时路径
			//this.bg_Url = res.tempFilePath
			
		} ,
	})
});

希望能帮助到你们

  • 6
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值