Я использовал MoviePy для создания видео с изображения и добавления аннотации к нижней части изображения. Проблема в том, что текст, который я хочу добавить, является вьетнамским (а не английским), поэтому MoviePy не может отобразить его правильно.MoviePy не может отображать текст не по-английски правильно
В частности, ниже мой код
# -*- coding: utf-8 -*-
from moviepy.editor import *
# create clip from image
clip = ImageClip('img/1.jpg').on_color((1920, 1080))
clip = clip.set_duration(2)
# add annotation to clip
txtclip = TextClip('Truyện Kiều Nguyễn Du', fontsize=50, color='red')
cvc = CompositeVideoClip([ clip, txtclip.set_pos(('center', 'bottom'))])
cvc = cvc.set_duration(2)
# write video to file
cvc.write_videofile("text.mp4", fps=24)
Вместо отображения Truyện Kiều Nguyễn Du
, он отображает Truy?n Ki?u Nguy?n Du
.
Я думаю, что главная проблема заключается в ImageMagick
, потому что, когда я использую команду
convert -size 400x200 xc:khaki -gravity Center -pointsize 30 -annotate 0 "Truyện Kiều Nguyễn Du" u8_an.png
ImageMagick также создает изображение с той же проблемой. Пожалуйста, дайте мне знать, можете ли вы помочь мне исправить это.
UPDATE: Я также пытаюсь преобразовать строку в UTF-8, но он не работает
t = u'Truyện Kiều Nguyễn Du'.encode('utf-8') txtclip = TextClip(t, fontsize=50, color='red')
Это может быть проблема с шрифтом по умолчанию. Укажите тот, который, как вы знаете, содержит вьетнамские символы. Вам также может потребоваться явно кодировать текст в UTF-8. –
BTW, с вопросами Unicode всегда полезно упомянуть версию Python и ОС. –
Привет, версия Python, которую я использовал, - 2.7.12. Моя ОС - Ubuntu 16.04 LTS 64bit. Я также явно кодирую текст в UTF8, но он не работает '' t = u'Truyện Kiều Nguyễn Du'.encode ('utf-8') txtclip = TextClip (t, fontsize = 50, color = ' red ') '' Вы бы дали мне больше предложений о шрифте? – tndoan