我正在开发一个应用程序,它需要将HTML“工作空间”(固定大小和包含文本和/或图像的绝对定位对象)转换为HTML5画布图。 由于画布绘制方法的实现,例如.fillText(),我很难将元素的文本添加到画布中。也就是说,我不能让画布上的文本与原始工作区对象中的文本具有相同的大小,尽管事实上我正在为它检索所有使用的CSS规则:
c.font = obj.title.fontStyle+' '+obj.title.fontWeight+' '+obj.title.fontSize+'px + obj.title.fontFamily;
// c = drawing context
顺便说一句,元素的字体大小以像素为单位。
该应用位于http://picselbocs.com/projects/goalcandy/。你需要使用'demo@demo.com'登录电子邮件输入和'demo'作为密码,然后添加一个从左边到工作区的标题元素,然后按“转换为PNG” 。 你会注意到文本大小的增加。
我如何解决这个令人沮丧的问题?
答案 0 :(得分:1)
虽然这个问题听起来很有意思,但事实上它完全是白痴!因此,一旦检测到问题和解决方案,答案就非常简单,适用于2秒(字面意思)。 问题不是跨浏览器问题,而是Chrome的缩放功能。我之前放大了我打开应用程序的窗口,不知道它,这反过来使画布图像变得模糊。 所以解决方案:缩小! 的%#$%#的$ @〜!@
答案 1 :(得分:0)
这是画布绘制算法的一个限制,似乎你无法轻易解决这个问题。
请参阅此问题以供参考:Subpixel anti-aliased text on HTML5's canvas element