• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell
您的位置:首页 > 脚本语言 >python > Python实现对比不同字体中的同一字符的显示效果

Python实现对比不同字体中的同一字符的显示效果

作者: 字体:[增加 减小] 来源:互联网

通过本文主要向大家介绍了python转义字符,python 格式化字符,python 字符转数字,python 字符,python 替换字符等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

有人在 openSUSE 中文论坛询问他的输入法打出的「妩媚」的「妩」字为什么显示成「女」+「元」。怀疑是字体的问题,于是空闲时用好友写的 python-fontconfig 配合 Pillow (PIL 的一个 fork)写了个脚本,使用系统上所有包含这个「妩」字的字体来显示这个字,看看到底是哪些字体有问题。

(更新后的)脚本如下:

Google Chrome / Chromium 用户请注意:如果复制得到的代码中含有不间断空格(0xa0),请手动替换下。

#!/usr/bin/env python3
# vim:fileencoding=utf-8

from PIL import Image, ImageDraw, ImageFont
import fontconfig

ch = '妩'
def get_fonts():
  ret = []
  for f in fontconfig.query():
    f = fontconfig.FcFont(f)
    if f.has_char(ch):
      ret.append((f.file, f.bestname))
  return ret

w, h = 800, 20000
image = Image.new('RGB', (w, h), 'white')
draw = ImageDraw.Draw(image)
pos = 0
w = 0
strs = ch
for fontfile, fontname in get_fonts():
  font = ImageFont.truetype(fontfile, 24)
  s = '%s: %s' % (fontname, strs)
  font_width, font_height = font.getsize(s)
  w = max((font_width, w))
  draw.text((10, pos), s, font=font, fill='black')
  pos += font_height
  h = pos

image = image.crop((0, 0, w+10, h))
image.save('fonts.png')
寻找字体,然后渲染到当前目录下的fonts.png文件中。寻找字体的过程挺花时间的,要耐心等待。最后结果如下:

我这里,文泉驿微米黑、方正魏碑ref、某个 Droid Sans Fallback 字体中「妩」字的字形不对。(我这里有三个字体文件都叫「Droid Sans Fallback」……)>

</div>

您可能想查找下面的文章:

  • Python 转义字符详细介绍
  • python处理html转义字符的方法详解
  • Python随机生成带特殊字符的密码
  • Python实现查找系统盘中需要找的字符
  • Python实现查找系统盘中需要找的字符
  • Python文件读取的3种方法及路径转义
  • Python中每次处理一个字符的5种方法
  • Python实现对比不同字体中的同一字符的显示效果
  • Python 正则表达式(转义问题)
  • python实现每次处理一个字符的三种方法

相关文章

  • Python守护进程和脚本单例运行详解
  • python读写json文件的简单实现
  • python实现中文转换url编码的方法
  • 利用numpy+matplotlib绘图的基本操作教程
  • python实现FTP服务器服务的方法
  • python进阶教程之模块(module)介绍
  • Python中exit、return、sys.exit()等使用实例和区别
  • python中反射用法实例
  • Python的字典和列表的使用中一些需要注意的地方
  • Python中json格式数据的编码与解码方法详解

文章分类

  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell

最近更新的内容

    • Python中的super用法详解
    • Python的Tornado框架的异步任务与AsyncHTTPClient
    • python 测试实现方法
    • Python采用socket模拟TCP通讯的实现方法
    • Python中返回字典键的值的values()方法使用
    • 用Python实现QQ游戏大家来找茬辅助工具
    • Python解析网页源代码中的115网盘链接实例
    • 使用Python的Scrapy框架十分钟爬取美女图
    • Python 列表(List)操作方法详解
    • 常见的在Python中实现单例模式的三种方法

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有