javascript - 无法同时设置画布宽度和更改字体?
问题描述
在 jsfiddle 中,调用 measureText 设置画布宽度:
tCtx.canvas.width = tCtx.measureText(this.value).width;
覆盖字体大小:
tCtx.font = "25px serif"
如果我删除对 measureText 的调用,那么画布将使用我期望的字体大小。不幸的是,我不得不猜测画布的宽度。为什么会这样,有更好的方法吗?
解决方案
更改画布尺寸也会重置上下文。调整大小后,您需要再次设置字体(以及任何其他非默认设置)。
tCtx.font = 'bold 24px serif';
tCtx.canvas.width = tCtx.measureText(this.value).width;
tCtx.font = 'bold 24px serif';
tCtx.fillText(this.value, 0, 10);
保存的状态(通过.save()
/ .restore()
)在调整大小时也会丢失。如果您希望对画布状态进行一些更改,您可能希望将它们分解为您自己的.save()
/.restore()
函数。
推荐阅读
- xamarin.forms - 在 xamarin.plugin.filepicker nuget 包中打开新生成的文件时应用程序崩溃
- excel - 文件的同时编辑
- c++ - 需要帮助了解这个简短的 C++ 程序及其漏洞
- google-cloud-platform - 从 Google Datastore 导出到存储桶时,处理“实体种类过多”和“飞行中导出过多”的最佳方法是什么?
- javascript - 如何在 Bootstrap 3 选项卡上应用悬停?
- javascript - 在测验应用程序中设置计时器
- html - 忽略标签
我对 RegEx 不太熟悉,我需要提取
<td> NEED HERE </td>
.<td>
但是当它具有 CSS 属性时,我只需要匹配标签。我需要跳过它们,无论<table><tr><td>
有没有属性<td[^>]*>
例子:
- python - 匹配字符串的正则表达式,如果该字符串以特定字符结尾,则不匹配
- r - 在 gtable_matrix 中跨多个 ggplot 图形绘制一条线
- jenkins - 当Jenkins的构建输出发生变化时,有没有办法得到通知?