收藏
回答

canvas裁剪?

canvas裁剪的时候,面板如果有空白给用户一个提示,裁剪是随意拖动旋转的,问一下是否有实现思路?

回答关注问题邀请回答
收藏

1 个回答

  • 卢霄霄
    卢霄霄
    2020-08-18

    缩放拖动旋转之类的,可以自己用事件做。

    空白这个嘛。。

    1、如果剪裁框是标准正方形呢,那你可以自己计算有没有空白。比如,以剪裁框左下角为坐标原点,计算出图片的四个点的坐标,然后判断剪裁框4个点都在图片矩形的内部(这个判断点在矩形内部的矢量计算公式百度吧)

    2、如果剪裁框不是标准正方形,那能保证图片本身不透明的话(透明的话可以在图片位置先画个白背景),你可以试试用API 取canvas的像素数组,然后里面不包含 alpha 为0的点。。性能可能不太好,建议只在保存的时候做下校验。

    补充一下,你能看见的缩放拖动旋转,都没必要直接在canvas上实现,可以用image标签来做,最后保存的时候再画到canvas上并保存下来

    2020-08-18
    有用
    回复 4
    • 莫
      2020-08-18
      嗯啊,您说的很对!现在裁剪是实现了,就是用户放大旋转的时候,面板上可能有空白残留,而用户也没太注意,导致图片打印时有空白部分。所以要检测一下给用户提示,API 取canvas的像素数组可以解决这点对吧?
      2020-08-18
      回复
    • 卢霄霄
      卢霄霄
      2020-08-18回复
      嗯 两种方式都能处理空白检测
      2020-08-18
      回复
    • 莫
      2020-08-19回复卢霄霄
      谢谢您的宝贵建议,亲!祝您生活愉快。
      2020-08-19
      回复
    • 卢霄霄
      卢霄霄
      2020-08-19回复
      不客气 有问题再来
      2020-08-19
      回复
登录 后发表内容
问题标签