欢迎光临北京雪聪网
详情描述
FreeBSD下如何使GraphicsMagick支持中文字体?

1. 安装中文字体

# 安装文泉驿字体(推荐)
sudo pkg install zh-wqy-fonts

# 或安装其他中文字体包
sudo pkg install zh-arphicttf
sudo pkg install zh-noto-cjk

2. 将字体添加到系统字体目录

# 将中文字体链接到字体目录
sudo ln -sf /usr/local/share/fonts/wqy /usr/share/fonts/
# 或直接复制字体文件
sudo cp /usr/local/share/fonts/wqy/*.ttf /usr/local/share/fonts/

3. 配置GraphicsMagick字体路径

方法A:修改配置文件

# 编辑Type配置文件
sudo vim /usr/local/etc/ImageMagick-6/type.xml
# 或(取决于版本)
sudo vim /usr/local/etc/ImageMagick/type.xml

在文件末尾添加字体配置:

<typemap>
  <include file="chinese.xml" />
</typemap>

方法B:创建字体配置文件

# 创建chinese.xml文件
sudo vim /usr/local/etc/ImageMagick/chinese.xml

内容示例:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE typemap [
<!ELEMENT typemap (type)+>
<!ELEMENT type (#PCDATA)>
<!ATTLIST type name CDATA #REQUIRED>
<!ATTLIST type family CDATA #REQUIRED>
<!ATTLIST type foundry CDATA #IMPLIED>
<!ATTLIST type weight CDATA #IMPLIED>
<!ATTLIST type style CDATA #IMPLIED>
<!ATTLIST type stretch CDATA #IMPLIED>
<!ATTLIST type format CDATA #IMPLIED>
<!ATTLIST type metrics CDATA #IMPLIED>
<!ATTLIST type glyphs CDATA #REQUIRED>
]>
<typemap>
  <type
    name="WenQuanYi-Microhei"
    family="WenQuanYi Micro Hei"
    foundry="unknown"
    weight="400"
    style="normal"
    stretch="normal"
    format="truetype"
    metrics="/usr/local/share/fonts/wqy/wqy-microhei.ttc"
    glyphs="/usr/local/share/fonts/wqy/wqy-microhei.ttc"/>
</typemap>

4. 验证安装

# 查看已安装字体
gm convert -list font

# 测试中文字体
gm convert -font "WenQuanYi Micro Hei" -pointsize 36 -draw "text 10,50 '测试中文'" xc:white test.png

5. 如果已安装GraphicsMagick,可能需要重新编译

# 重新安装或编译
cd /usr/ports/graphics/GraphicsMagick
sudo make config
# 确保选择了需要的字体支持选项
sudo make clean install

6. 常用调试命令

# 查看字体搜索路径
gm convert -list type

# 临时指定字体路径
gm convert -font /usr/local/share/fonts/wqy/wqy-microhei.ttc ...

# 使用env变量
export MAGICK_FONT_PATH=/usr/local/share/fonts/wqy

注意事项:

GraphicsMagick使用ImageMagick的字体配置文件 确保字体文件权限正确(通常644) 可能需要刷新字体缓存(如果系统使用fontconfig) 不同版本配置文件路径可能不同

通过以上步骤,GraphicsMagick应该能正常显示和处理中文字体。

相关帖子
在2026年,自由职业者或平台骑手如何为自己配置类似工伤保险的保障?
在2026年,自由职业者或平台骑手如何为自己配置类似工伤保险的保障?
农村实行火葬后,骨灰的安置有哪些常见方式?对传统习俗有何影响?
农村实行火葬后,骨灰的安置有哪些常见方式?对传统习俗有何影响?
在2026年,哪些新兴的软技能可以通过短期学习在空窗期内获得提升?
在2026年,哪些新兴的软技能可以通过短期学习在空窗期内获得提升?
2026年老年人免费乘车卡政策有哪些新变化和办理使用注意事项?
2026年老年人免费乘车卡政策有哪些新变化和办理使用注意事项?
制定新年计划后却因节后综合征无法行动,如何打破拖延顺利起步?
制定新年计划后却因节后综合征无法行动,如何打破拖延顺利起步?
在长护险框架下,未来“智慧养老”产品的发展方向是什么?
在长护险框架下,未来“智慧养老”产品的发展方向是什么?
知识付费领域的博主越来越多普通人该如何建立信任做出选择?
知识付费领域的博主越来越多普通人该如何建立信任做出选择?
2026年各地幼儿园普惠性收费政策具体包含哪些项目和费用标准?
2026年各地幼儿园普惠性收费政策具体包含哪些项目和费用标准?
在个人数据被商家用于个性化定价(大数据杀熟)时,2026年消费者有哪些反制渠道?
在个人数据被商家用于个性化定价(大数据杀熟)时,2026年消费者有哪些反制渠道?
村民操办红白事时,使用村委会广场等公共资源,其合理范围是什么?
村民操办红白事时,使用村委会广场等公共资源,其合理范围是什么?
带薪年休假期间的工资,是按照基本工资还是平均工资来计算?
带薪年休假期间的工资,是按照基本工资还是平均工资来计算?
工会组织的职工疗休养活动通常如何安排,参与资格和流程在近年有何变化?
工会组织的职工疗休养活动通常如何安排,参与资格和流程在近年有何变化?
通过“带押过户”方式交易,需要缴纳的税费和传统交易方式有什么不同吗?
通过“带押过户”方式交易,需要缴纳的税费和传统交易方式有什么不同吗?
对于心智障碍者,2026年有哪些数字工具或设计方法可以帮助他们理解复杂信息?
对于心智障碍者,2026年有哪些数字工具或设计方法可以帮助他们理解复杂信息?
AI怎么画简笔画竹笋? ai快速手绘山竹笋形状图案的技巧
AI怎么画简笔画竹笋? ai快速手绘山竹笋形状图案的技巧
小体量博主在2026年应关注哪些比流量更重要的核心成长指标?
小体量博主在2026年应关注哪些比流量更重要的核心成长指标?
患者的病历资料中,是否包含所有检查报告、医嘱记录和手术过程记录?
患者的病历资料中,是否包含所有检查报告、医嘱记录和手术过程记录?
ClickHouse使用MySQL数据库引擎的实现
ClickHouse使用MySQL数据库引擎的实现