如何在Konva.js中导出原始宽高的图片(缩放非1时)
Konva.js导出1:1比例图片的解决思路
临时重置画布状态再导出
导出前先保存当前舞台的scale和position参数,然后将舞台缩放设为{x:1, y:1}、位置设为{x:0, y:0},同时把舞台尺寸改回设计时的原始宽高。调用stage.batchDraw()确保状态生效后,再用stage.toDataURL()导出,导出完成后恢复之前保存的参数,不影响用户当前编辑状态。直接用导出参数指定比例
无需修改当前舞台的显示状态,直接在toDataURL中配置导出参数:指定导出的宽高为原始画布尺寸,缩放设为1,示例代码如下:const dataURL = stage.toDataURL({ width: 你的原始宽度, height: 你的原始高度, scale: 1, x: 0, y: 0 });这种方式不会干扰用户正在编辑的画布状态,更稳妥。
检查元素位置与舞台尺寸
若导出图片出现元素偏移,要确认元素位置是基于原始比例的坐标。另外如果之前为适配窗口调整过舞台尺寸,重置缩放后需把舞台尺寸改回原始值,否则导出的图片尺寸还是缩放后的大小,仅内容缩成1倍,结果依然不符合预期。
内容的提问来源于stack exchange,提问作者Taesung
相关产品推荐
相关产品推荐

