Преобразование NFO в PNG с Python и PIL - PullRequest
1 голос
/ 16 июня 2011

Я пытаюсь преобразовать файл NFO с помощью некоторых сумасшедших художественных примеров ASCII, используя скрипт Python и PIL.Все хорошо, когда 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

Я думаю, что я, вероятно, использую неправильный шрифт,и неправильная кодировка.Я знаю, что такого рода НФО были созданы с кодировкой CP437, но я не вижу способа получить это.

Любая помощь приветствуется !!

1 Ответ

0 голосов
/ 16 июня 2011

Как вы получаете содержимое переменной nfoText? Это юникод или байтовая строка?

Не зная, как PIL обрабатывает кодировки, я предполагаю, что он корректно работает со строками Unicode, а затем просто прочитайте файл nfo с помощью:

import codecs
nfoText = codecs.open('something.nfo', 'r', 'cp437').read()

Сейчас я не могу проверить, поддерживает ли Python кодировку cp437, и у меня нет доступного файла nfo (я видел только то, что он использовался в пиратском программном обеспечении, но, конечно, я полагаю, что у вас есть уважительная причина справиться с ними). Надеюсь, это поможет в любом случае.

...