私は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
が表示されます。
私は、コマンド
convert -size 400x200 xc:khaki -gravity Center -pointsize 30 -annotate 0 "Truyện Kiều Nguyễn Du" u8_an.png
を使用する場合はImageMagickも同じ問題を持つ画像を作成するための主な問題はImageMagick
からだと思います。もし私がそれを解決するのを手伝ってくれたら教えてください。
UPDATE:私もUTF-8に文字列を変換しようとするが、それは@Gloinの提案から
t = u'Truyện Kiều Nguyễn Du'.encode('utf-8') txtclip = TextClip(t, fontsize=50, color='red')
デフォルトのフォントに問題がある可能性があります。ベトナム語の文字が含まれていることを指定します。また、テキストをUTF-8に明示的にエンコードする必要があるかもしれません。 –
ところで、Unicodeに関する質問では、PythonのバージョンとOSについて言及することは常に良い考えです。 –
こんにちは、私が使ったPythonのバージョンは2.7.12です。私のOSはUbuntu 16.04 LTS 64bitです。また、テキストをUTF8に明示的にエンコードしても動作しません。 '' t =u'TruyệnNguyễnDu'.encode( 'utf-8') txtclip = TextClip(t、fontsize = 50、color = '赤 ') '' あなたは私にフォントの提案をくれますか? – tndoan