update
parent
dc87a4b287
commit
0cfeb517be
|
@ -8,7 +8,17 @@ import { Controller } from './base.js'
|
|||
import { DEFAULT_OPTIONS } from './config.js'
|
||||
|
||||
export class Font extends Controller {
|
||||
#fontface = new Controller(DEFAULT_OPTIONS.fontface)
|
||||
|
||||
constructor(opt) {
|
||||
super(Object.assign({}, DEFAULT_OPTIONS.font, opt))
|
||||
}
|
||||
|
||||
get fontFace() {
|
||||
return this.#fontface
|
||||
}
|
||||
|
||||
set fontFace(opt = {}) {
|
||||
this.#fontface = new Controller(opt)
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,55 @@
|
|||
/**
|
||||
* {}
|
||||
* @author yutent<yutent.io@gmail.com>
|
||||
* @date 2024/02/22 18:38:26
|
||||
*/
|
||||
|
||||
/**
|
||||
* 字体里面的unicode千奇百怪有很多种形式,需要进行转换成16进制的unicode
|
||||
* 返回最终的16进制值组成的字符串
|
||||
*/
|
||||
export function str2unicode(str) {
|
||||
//没有管\\u的情况
|
||||
str = str.replace(/&#(x?[a-f\d]+)(;?)/gi, function (m, u) {
|
||||
let HEX_BASE = 10
|
||||
if (u.indexOf('x') === 0) {
|
||||
HEX_BASE = 16
|
||||
u = u.substr(1)
|
||||
}
|
||||
return String.fromCodePoint(parseInt(u, HEX_BASE))
|
||||
})
|
||||
//将ascii码转换成unicode
|
||||
str = str.replace(/[\x00-\xff]/g, s => `&#${s.codePointAt(0)};`)
|
||||
//将汉字转成unicode
|
||||
str = str.replace(/[^\u0000-\u00FF]/g, _ => {
|
||||
return escape(_).replace(/(%u)(\w{4})/gi, '&#x$2;')
|
||||
})
|
||||
//将十进制的unicode转换成16进制的。
|
||||
str = str.replace(/\&\#(\d+)/g, (_, n) => `&#x${(+n).toString(16)}`)
|
||||
|
||||
return str
|
||||
}
|
||||
|
||||
export function toUnicode(str) {
|
||||
let uArray = str2unicode(str)
|
||||
uArray = uArray.split(';')
|
||||
uArray.pop()
|
||||
return uArray.map(n => n + ';')
|
||||
}
|
||||
|
||||
export function normalizeUnicode(str) {
|
||||
return toUnicode(str)[0]
|
||||
}
|
||||
|
||||
export function toLine(str) {
|
||||
return str.replace(/([A-Z]{1})/g, (_, s) => '-' + s.toLowerCase())
|
||||
}
|
||||
|
||||
export function key2underline(obj) {
|
||||
let result = {}
|
||||
for (let k in obj) {
|
||||
k = toLine(k)
|
||||
result[k] = obj[k]
|
||||
}
|
||||
return result
|
||||
}
|
|
@ -5,10 +5,13 @@
|
|||
*/
|
||||
|
||||
import { svg2ttf } from '../src/index.js'
|
||||
import { toUnicode } from '../src/lib/utils.js'
|
||||
import fs from 'iofs'
|
||||
|
||||
let svg = fs.cat('test/game.svg').toString()
|
||||
// let svg = fs.cat('test/game.svg').toString()
|
||||
|
||||
let ttf = svg2ttf(svg)
|
||||
// let ttf = svg2ttf(svg)
|
||||
|
||||
// console.log(ttf)
|
||||
|
||||
console.log(toUnicode('哈哈'))
|
||||
|
|
Loading…
Reference in New Issue