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扩展后, 该扩展可以自动识别字体宽度

  • 相关阅读:
    Django【二】自定义web框架
    Django【一】web框架的本质
    Django【零】HTTP协议
    【前端】bootstrap引入
    【前端】jquery基础学习
    socket模块粘包现象理解以及解决思路
    面向对象编程学习笔记
    socket模块
    CPU缓存体系对Go程序的影响
    测试Go代码 单元测试
  • 原文地址:https://www.cnblogs.com/iLoveMyD/p/11049472.html
Copyright © 2011-2022 走看看