时间:2019-05-07 来源:小程序工厂
我是这么想的,看得到的部分,用image标签配合movable-view来做。。然后记录缩放的比例,旋转的角度,拖动的位置,在操作完成之后,要保存的时候,再画在canvas上
如何把dom节点的内容画到canvas里面呢?如果能通过这个办法也是很不错的
比如你有5个图。那么你界面上看得见的部分其实放的是 movable-view,movable-view里各有一个image标签。。image标签的src知道,就画到canvas上就行啦。有啥不行的地方吗?
我的需求是保存用户操作之后的结果,比如5个图片,用户操作其中一张图片之后,再把5张图片保存成为一张图片。在微信小程序提供的canvas的api里面并不能准确的识别5张图片的某一张。只能对整个canvas进行操作。
如果按照您的方案,利用 movable-view 组件进行操作之后,在canvas里面获取图片进行保存,但是只能读取到src的画并不能解决问题,我希望的是用户在 movable-view 组件上面操作之后还能记录操作的数据 并且发送到canvas保存成为一张图片 然后保存到用户手机本地
可以办到啊,movable-view有bindchange和bindscale。可以获取位置和缩放,然后你根据这个可以画到canvas上去,没问题呀。旋转的话,需要自己做手势监听,然后设给movable-view,这个角度在画图的时候也是已知的啊。
你好 刚才我又看了一下文档 CanvasContext.rotate(number rotate)
这个api好像只能旋转整个canvas画布,并不能对画布中的任意矩形或者图像进行旋转,这又回到了当初的问题,没法选择画布中的矩阵的问题
const ctx = wx.createCanvasContext('Workbench');
ctx.drawImage('1.jpg', 0, 0, 150, 150);
ctx.drawImage('2.jpg', 100, 0, 150, 150);
ctx.rotate(20 * Math.PI / 180)
ctx.draw();
这样是无效的
这个要解决很多方法啊~
你要画这个旋转了的图的时候,可以先反向旋转画布,然后画上图,再把画布旋转回来。
或者可以找另一个canvas,把canvas旋转了,把图画上去,然后把canvas保存成临时文件,再画到主canvas上
你需要先rotate 再drawImage才行哦
事实上这样子并没有用,画布旋转之后把全部内容都旋转了,我希望的是只旋转画布里面的图片或者矩阵。
期待官方的回复
你画图前,旋转画布,画图片,旋转回画布,继续后面的。。是我表达能力有问题吗。。