利用h5 canvas画布操作图片

canvs画布可以直接获取到图像数据,从而进行图像操作,原理很简单,但是实现起来还是会有很多坑。

1.本地图片的协议为file://且域名为空,因此在canvs中获取getImageData时会出现跨域问题

解决方法:讲图片和网页都放到同一个服务器上即可。可以自己用spring boot快速搭建一个服务器。不过最简单的还是用nginx做一个静态资源服务器。

2.想要动态改变canvas画布,但canvas的设置css宽高会出现图片拉伸现象

原因:canvas的width/height属性设置宽高,同时设置了画布和画板的宽高(默认300*150) 但css宽高只能设置画板。画布上只能显示部分图片,最后画布会自行拉伸到充满画板。

解决方法:动态设置width/height属性即可,设置是不要带'px'。

3.修改完图片数据后,使用cvs.toDataURL('image/jpeg');获取图片的base64数据。如何下载这个base64图片呢?

解决办法:a 标签有一个download属性指示要下载的链接,点击即可下载

之后有空了会继续完善,目前先放在github上

演示地址:https://github.com/mimof9/color2gray

猜你喜欢

转载自blog.csdn.net/qq_21294095/article/details/88755842