天天看点

Scratch3.0 保存缩略图

修改原生组件

// 首先修改组件 RenderWebGL.js, 添加 preserveDrawingBuffer: true
// 文件地址 node_modules\scratch-render\src\RenderWebGL.js 

// 修改前
static _getContext (canvas) {
    return twgl.getWebGLContext(canvas, {alpha: false, stencil: true});
}

// 修改后
static _getContext (canvas) {
    return twgl.getWebGLContext(canvas, {alpha: false, stencil: true, preserveDrawingBuffer: true});
}
           

获取画布对象,保存成图片到七牛云上

// 将类名为stage_stage_DTWo5的canvas对象转换成png对象
$("canvas.stage_stage_DTWo5")[0].toBlob(function (blob) {
    // 使用七牛保存文件需要使用npm七牛云的js组件
	let observable2 = qiniu.upload(blob, "保存的文件名", "七牛Token", {}, {});
	let observer2 = {
		next(res){
			console.log("作品缩略图上传进度:", res.total.percent+"%");
		},
		error(err){
			console.log("作品缩略图上传异常:", err);
		},
		complete(res){
			console.log("作品缩略图上传结果:", res);
		}
	}
	observable2.subscribe(observer2) // 上传开始
}, "image/png");