使用Image模块在图像上绘制希伯来文文本(python)

2 投票
2 回答
1677 浏览
提问于 2025-04-15 18:46

这是我之前问过的一个问题,虽然有几个人给了我答案,但问题还是没有解决。当我尝试用希伯来语在图片上写字时,结果却出现了一些其他的字母(可能是ASCII字符?)。如果我把它转换成Unicode或ASCII,就会出现不支持的错误。我找到了一段可以用中文实现我想要的功能的代码:

import sys

import Imag

import ImageDraw

import ImageFont

import _imaging

txt = '你好,世界!'

font = ImageFont.truetype('c:/test/simsun.ttc',24)

im = Image.new("RGBA",(300,200),(0,0,0))

draw = ImageDraw.Draw(im)

#draw.text( (0,50), u'你好,世界!', font=font)

draw.text( (0,50), unicode(txt,'UTF-8'), font=font)

但是我又遇到了一个错误:ImportError:

_imagingft C模块没有安装。

当我尝试使用标准的希伯来字体'arial.ttf'(当然是希伯来语字符串)时,也是同样的问题。正如你所看到的,我已经成功导入了_imaging,所以问题并不在这里,正如effbot.org所说的那样。

看起来问题出在Imagefont.truetype(...)上。

任何帮助都将非常感谢。

2 个回答

1

问题是PIL 1.1.7在Windows XP上运行得不好。相同的代码在Linux上或者在XP上用PIL 1.1.6运行得很好。我的问题就这样解决了。

3

听起来像是PIL这个库在安装的时候没有包含FreeType的支持。你需要安装FreeType的开发文件,然后再重新安装PIL。

撰写回答