canvas 截图 drawImage出现误差。但是官网是对着的,因为官网展示的img标签就是图片源像素大小
首先 严重声明,不要头铁 珍爱秀发 自己写截图功能,网上一堆插件呢。
例如 html2Canvas 等等 前端截图 可以用css标签 clip截图
推荐插件 https://github.com/dailc/image-process/blob/master/src/clip/README.md
正文:
同样一张图片,同样img标签和canvas标签一样大小,都是592 / 333 但是 canvas渲染的图片要小一些,因为canvas渲染的是图片的源像素,img拉伸了, 那么问题来了,canva截图截的也只是图片的原像素坐标。
也就是说。例如 图片原像素 100*100 img像素200*200
canvas的 drawImage(img,0,0,200,200,0,0,200,200)
在canvas上只能截出 100*100像素大小的全图。。也就是说 canvas上还有100*100像素是空的 透明的
这样截图肯定不对。。那么解决方法,把图片源像素改成200*200就可以了
舍弃img标签。。另外用一个canvas标签。加载 100*100像素的图片。 然后 drawImage(img,0,0,200,200) 就可以了。。
总之 大家能发现是源图片大小的问题 基本上就能找到解决方案了。。。卡了我一天呐。。
还有改变图片源像素 可以去看下这位妹纸的博客