根据用户设置的字体将某一个字符绘制在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的原创作品,如需转载,请注明出处,否则将追究法律责任

更多相关文章

  1. mac 安装 Iterm2的乱码问题如何解决
  2. 一段蛋疼的代码:超不清视频播放器
  3. 网页字体更清晰的css用什么?
  4. 【uni-app】引入阿里巴巴图标库
  5. 关于图片性能优化,你必须知道的
  6. mac截图不清晰怎么办
  7. 如何修改Safari浏览器网页字体大小?
  8. 单位em和rem区别,box-sizing定义边界,VW和VH,字体图标,定位原理
  9. 210323 CSS 盒子模型 字体图标 定位

随机推荐

  1. 在下方的tab页
  2. android BadTokenException之token is no
  3. android 内存清理
  4. android截屏代码:C++实现
  5. GoogleAndroid常用的Android常量
  6. 读取raw文件下文件内容
  7. android开发--RelativeLayout用到的一些
  8. Android(安卓)ImageSpan与TextView中的te
  9. Android中WebView如何加载JavaScript脚本
  10. Android预制APP第一次打开时不弹权限提示