2017-02-05 16 views
1

私は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')

+0

デフォルトのフォントに問題がある可能性があります。ベトナム語の文字が含まれていることを指定します。また、テキストをUTF-8に明示的にエンコードする必要があるかもしれません。 –

+0

ところで、Unicodeに関する質問では、PythonのバージョンとOSについて言及することは常に良い考えです。 –

+0

こんにちは、私が使った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

答えて

0

を動作しません、私は答えとして私の解決策を投稿してください。

TextClipに異なるフォントを使用して固定されています。具体的には、これは私が、問題は、我々は文字列(2)をコード化するために、UTF-8を使用して(1)を検討する必要があるということだと思いソリューション

# -*- 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 
t = u'Truyện Kiều Nguyễn Du'.encode('utf-8') 
txtclip = TextClip(t, fontsize=50, color='red', font='FreeMono') 
cvc = CompositeVideoClip([ clip, txtclip.set_pos(('center', 'bottom'))]) 
cvc = cvc.set_duration(2) 

# write video to file 
cvc.write_videofile("text.mp4", fps=24) 

あるImageMagickのにプッシュするのに適したフォントを使用します(私の場合FreeMono

関連する問題