前言
今天在做一个小功能,也就是给图片添加水印时发现,我用canvas绘制水印文字时,水印的位置总是和理想中的不一样,总是会发生偏移。
解决方法
遇到这个问题其实可以有两种解决方法:
- 根据偏移的距离找出一个合适的反向移动的距离。是不是不太理解这句话的意思,没关系,大家可以看我的另一篇文章拖拽水印插件这里有讲到距离怎么实现,以及源码。
- 也可以通过canvas的原生API:textBaseLine这个来实现,canvas在绘制文字的时候会有一个对齐的标准,同时也会受到字体的影响,我的解决方式是通过设置textBaseLine = 'top’搞定了向上偏移的问题,但是还是会向左右偏移,这个是没有原生的方法来解决的,只能使用一些其他方法搞定,我采用的就是判断绘制的位置和原位置相差的距离,然后反向移动相应的距离即可。
希望我提供的方法会对你有帮助。