我在使用HTML5 Canvas进行文字渲染时出现问题,您可以在http://jsfiddle.net/qcVAV/看到。
似乎Firefox和Internet Explorer会测量文本并对其进行一致填充,但Chrome不会。
在提供的链接中,您将看到Internet Explorer和Firefox显示相同,并且measureText调用显示提供的文本测量为1679.在Firefox中有额外的精度。但是,对于Chrome,文字的测量值为1651。
我尝试添加css reset http://cssreset.com - 因为我认为也许css可能会把事情搞砸。
我还能做些什么(如果有的话)才能让文字一致地呈现?
答案 0 :(得分:2)
抱歉,你在这里运气不好!
文本不仅在每个浏览器上进行不同的测量,它的缩放和渲染方式也大不相同!尝试将字体大小乘以4并将比例缩小为4,结果可能会让您感到惊讶。某些浏览器中的字距调整将会关闭,而且在应用缩放时,Opera看起来很糟糕。
使measureText
保持一致的唯一方法是预先计算。
使fillText
保持一致的唯一方法是使用图像而不是文本。 It's must faster, anyway
如果文字非常动态,这些都是站不住脚的,但是如果你只是写一篇文章说,你的应用中不到100个不同的文字,那么图像可能是你最好的选择。