不需要考虑旋转角度。
1
abaaba0909 2022-08-12 17:33:23 +08:00
根据你图片大小按百分比计算一下就行了
|
2
lzj724 2022-08-12 17:48:41 +08:00
export function getDWordLength(str) {
let chinaLen = 0 let otherLen = 0 for (let i in str) { if (str[i].charCodeAt() <= 255) { otherLen++ } else { chinaLen++ } } return chinaLen + otherLen / 2 } export function getStrWidth(str, fontSize = 12, letter = 0) { return getDWordLength(str) * (fontSize + letter) } |
3
kkeep 2022-08-12 20:29:43 +08:00 via Android
水印文字不是固定的么。字体啥的
|
4
arch9999 2022-08-12 21:04:43 +08:00
000000
000000 000000 000000 000000 001100 |
5
reter 2022-08-12 21:25:01 +08:00 4
#2 的做法不可取
OP 的需求是获取渲染文字时所占用的宽度,不是简单用 "字符串的长度 * 字体大小" 就可以解决的。 比较显著的因素有:字体的选择,字体大小,字符的间距,行高,字体是等宽还是非等宽,渲染效果,实际的渲染环境等。这些都会影响渲染后字体的宽度和高度。 建议查阅所使用绘图的 API 文档,一般都会提供 API 用于测量字体的渲染信息。比如 https://docs.oracle.com/javase/7/docs/api/java/awt/FontMetrics.html https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/measureText 关键词 FontMetrics, measureText |
7
byzod 2022-08-13 16:40:51 +08:00
其实还挺麻烦的
精度要求不高偷懒可以直接按中文、字母 m 宽度和 x 高度来估算 css 就是这样的 |