使用Python和PIL将NFO转换为PNG
我正在尝试用一个Python脚本和PIL库来转换一个包含复杂ASCII艺术的NFO文件。当NFO文件里只有简单字符时,一切都很好,但当里面有“满方块”艺术时,我得到的结果却是很多“ùùùù”。
nfoFont = ImageFont.truetype('cour.ttf', size=12, encoding='unic')
#[...other code...]
nfoImage = Image.new("RGB", nfoSize, 'black')
draw = ImageDraw.Draw(nfoImage)
currentLineHeight = 0;
for line in nfoText:
draw.text((0, currentLineHeight), line, font=nfoFont, fill='gray')
currentLineHeight += nfoFontHeight
我觉得我可能在使用错误的字体和编码。我知道这种NFO文件是用CP437编码创建的,但我找不到获取这种编码的方法。
任何帮助都非常感谢!!
1 个回答
1
你怎么获取nfoText变量的内容?它是Unicode字符串还是字节字符串?
因为我不知道PIL是怎么处理编码的,我假设它能正确处理Unicode字符串,然后你可以用下面的方式读取nfo文件:
import codecs
nfoText = codecs.open('something.nfo', 'r', 'cp437').read()
我现在不能确认Python是否支持cp437编码,而且我手头没有nfo文件(我只见过它们在盗版软件中使用,不过我当然相信你有正当理由去处理它们)。希望这些信息对你有帮助。