使用canvas判断用户是否安装字体
16lz
2021-04-15
根据用户设置的字体将某一个字符绘制在canvas上(fillText()),并提取像素信息(getImageData()),然后和默认字体进行比对,如果像素不一致,说明字体生效,如果像素完全一致,说明字体不生效。
var isSupportFontFamily = function (f) { if (typeof f != "string") { return false } var h = "Arial"; if (f.toLowerCase() == h.toLowerCase()) { return true } var e = "a"; var d = 100; var a = 100, i = 100; var c = document.createElement("canvas"); var b = c.getContext("2d"); c.width = a; c.height = i; b.textAlign = "center"; b.fillStyle = "black"; b.textBaseline = "middle"; var g = function (j) { b.clearRect(0, 0, a, i); b.font = d + "px " + j + ", " + h; b.fillText(e, a / 2, i / 2); var k = b.getImageData(0, 0, a, i).data; return [].slice.call(k).filter(function (l) { return l != 0 }) }; return g(h).join("") !== g(f).join("")};©著作权归作者所有:来自51CTO博客作者mb607558ea4fef1的原创作品,如需转载,请注明出处,否则将追究法律责任
更多相关文章
- mac 安装 Iterm2的乱码问题如何解决
- 一段蛋疼的代码:超不清视频播放器
- 网页字体更清晰的css用什么?
- 【uni-app】引入阿里巴巴图标库
- 关于图片性能优化,你必须知道的
- mac截图不清晰怎么办
- 如何修改Safari浏览器网页字体大小?
- 单位em和rem区别,box-sizing定义边界,VW和VH,字体图标,定位原理
- 210323 CSS 盒子模型 字体图标 定位