使用Image模块在图像上绘制希伯来文文本(python)
这是我之前问过的一个问题,虽然有几个人给了我答案,但问题还是没有解决。当我尝试用希伯来语在图片上写字时,结果却出现了一些其他的字母(可能是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。