用uniapp的canvas转图片,出现只能保存部分和iOS不显示问题

用uniapp可以简化开发的工作量,但由于要兼容多端,开发的时候有许多坑。
使用uniapp,把canvas转图片,保存base64,时出现问题:
开始只写了width和height两个参数,其他参数没写,出现图片只保存部分,代码如下;


let info = uni.createSelectorQuery().select("#canvas");
info.boundingClientRect(function(data) { //data - 各种参数
	console.log(data)  // 获取元素宽度
	canvasw = data.width
	canvash = data.height
}).exec()
setTimeout(()=>{
	uni.canvasToTempFilePath({
		width:canvasw,
		height:canvash,
		canvasId: "canvas",
		success: function(res) {
			
		},
		fail:function(err){
			
		}
	},self);			
},1000);	

出现这种情况是因为没有加其他的参数,代码如下:


setTimeout(()=>{
	uni.canvasToTempFilePath({
		x: 0,
		y: 0,
		width:canvasw,
		height:canvash,
		destWidth: canvasw,
		destHeight: canvash,
		quality:0.6,
		canvasId: "canvas",
		success: function(res) {

		},
		fail:function(err){
			
		}
	},self);			
},1000);	

iOS的可直接用DOM操作,document.getElementById().toDataURL();

(45 Posts)