canvas菜鸟基于小程序实现图案在线定制功能
前言 最近在捣腾一个 袜子图案在线定制 的小程序,核心的需求大概是选择一只纯色的袜子,然后客户可以在袜子上面添加图案, 最终生成一个设计图保存后服务器。定制的图案可以旋转,缩放和拖动,当然,还可以删除。 内容比较初级, 因为我也只是一个 canvas 新手,本文仅是一次实践的记录. 实现-绘图 其实刚开始接手这个项目的时候,我是打算用小程序的 web-view 组件来嵌套 h5 的, 因为小程序的 canvas 的坑,或者说小程序的坑,我是深有体会的,不过回过头来想, web-view 我还没再项目中用过, 还说不定会遇到什么更大的坑呢,所以最终还是选择小程序的 canvas 首先, 计算图片的大小和位置,不能让图片超过画布(我这里是不能超过画布的 80%),位置在画布的正中间. 然后, 需要将原点移动到画布的中心点 这点比较重要,等下下面的旋转如果没有这一步的话,会沿着图片的左上角旋转. 第三步,将目标图像画到画板上,找个是没啥难的,直接调用 ctx.drawImage 既可 if (!this.imgUrl) return ctx.drawImage(this.imgUrl, x, y, this.tempImgWidth, this.tempImgHeight) drawImage 之前需要 判断一下目标图像的路径是否可以拿到图片,如果图片路径有问题,会直接报错