zoukankan      html  css  js  c++  java
  • PHP计算思源字体宽度, 并把文字绘制到图片上

    2019-6-19 9:18:54 星期三

    思源字体是一套开源的字体, 那字体宽度是多少呢?

    测试场景, 将包含汉字, 数字, 大小写字符的一段文字写到图片中去, 但不能出现超出的情况,  这就要计算出每种字符在不同字体下的宽度了

    测试工具:  php GD扩展, 思源字体 (注意 思源字体是otf后缀, 意思是 open tty字体,  可以用PHP的 imagettftext() 函数将文字写入到图片中去)

    测试结果图:

    右边的宽度是800px,

    使用的字体是SourceHanSansSC-Light.otf, frontsize=10, 

    1. 汉字: 总共61.5个汉字, 计算下来, 每个汉字大约13px, frontSize=1时代表1.3px

    2. 数字: 总共114个数字, 计算下来, 每个数字大约7.01px, frontSize=1时代表0.7px

    3. 大写英文字母: 总共97.5个字符, 计算下来, 每个字符大约8.2px, frontSize=1时代表0.82px

    4. 小写英文字母: 总共118个字符, 计算下来, 每个字符大约6.78px, frontSize=1时代表0.68px

    使用的字体是SourceHanSansSC-Light.otf, frontsize=20, 

    1. 汉字: 总共29.5个汉字, 计算下来, 每个汉字大约27.12px, frontSize=1时代表1.36px

    2. 数字: 总共57个数字, 计算下来, 每个数字大约14.03px, frontSize=1时代表0.7px

    3. 大写英文字母: 总共49.5个字符, 计算下来, 每个字符大约16.16px, frontSize=1时代表0.8px

    4. 小写英文字母: 总共59个字符, 计算下来, 每个字符大约13.56px, frontSize=1时代表0.68px

    总结:

    汉字: frontSize=1时代表1.36px

    数字:  frontSize=1时代表0.7px

    大写英文字母: frontSize=1时代表0.8px

    小写英文字母:frontSize=1时代表0.68px

    2019-12-6 11:33:33 星期五

    PHP中安装imgick扩展后, 该扩展可以自动识别字体宽度

  • 相关阅读:
    [转]MYSQL5.7版本sql_mode=only_full_group_by问题
    [坑]Linux MySQL环境表名默认区分大小写
    [转]CentOS 7.3 安装MySQL
    [转]Oracle截取字符串相关函数
    服务相关
    CSRF攻击
    sqlalchemy——多表操作
    sqlalchemy——基本操作
    高可用——网站运行监控
    高可用——软件质量保证
  • 原文地址:https://www.cnblogs.com/iLoveMyD/p/11049472.html
Copyright © 2011-2022 走看看