1. 需求
核心问题:
- 用户上传图片大小不一致,需要处理为相同大小
- 用户上传的图片可能并不符合显示要求(纯色,所以在上传或者预览阶段就应当先预处理成合适的颜色)
运行环境为:
- 移动端,不考虑桌面端显示
- 默认用户浏览器支持html5
- 视图框架 vue
这里暂不清楚需求是需要在编辑阶段就转化图片还是在显示阶段才转化图片,但是从逻辑上来讲,应该在编辑阶段就处理掉图片,所以这里暂实现一个组件以在前端处理图片样式.
ps:
其他解决方案:
由于用户上传的是图片,实际上是可以使用 svg + filter 的方式实现的,这里笔者暂不展开,具体可以百度
2. 实现
对于前端像素级操作,无非就使用一下canvas处理,这里对canvas的使用还是得心应手的.
这里只显示一个基础的icon组件, 图片裁切方面应当在此前就已经实现了