moviepy TextClip 汉字不显示原因

原因是字体路径问题。使用font_path=font_path.replace('\\', '/')将路径中的\转为/就好了。

f = open(txt_file, 'r', encoding='utf-8')
text = f.read()
f.close()
print(text)
fontsize=int(layer_config["字幕字体大小"].strip()) if layer_config["字幕字体大小"].strip().isnumeric() else int(CONFIG["默认字幕字体大小"])
font=os.path.join(os.getcwd(),CONFIG['字体路径'])+"\\"+layer_config['字幕字体']

if not os.path.exists(font):font = FONTS_DEFAULT_ZIMU
font=font.replace('\\', '/')

color_str = layer_config["字幕字体颜色"].strip() if len(layer_config["字幕字体颜色"].strip()) > 1 else '(255, 0, 0, 255)'
font_color = tuple(int(i) for i in color_str.replace('(', "").replace(")", "").replace(",", ",").split(','))
color_str = layer_config["字幕字体颜色"].strip() if len(layer_config["字幕字体颜色"].strip()) > 1 else '(255, 0, 0, 255)'
#bg_color = tuple(int(i) for i in color_str.replace('(', "").replace(")", "").replace(",", ",").split(','))
clip_layer=mp.TextClip(text,fontsize = fontsize,font = font,color = 'red').set_position(('center','bottom')).set_duration(video_duration)

以下是使用MoviePy给视频添加中文水印的步骤: 1. 准备好要添加水印的视频和水印图片,确保水印图片为透明背景的PNG格式。 2. 安装MoviePy库。可以使用pip命令在终端中安装:pip install moviepy 3. 导入MoviePy库中所需的类和函数: ```python from moviepy.editor import * from moviepy.video.tools.drawing import * ``` 4. 加载要添加水印的视频: ```python video = VideoFileClip("video.mp4") ``` 5. 加载水印图片,并在其上添加中文水印: ```python logo = ImageClip("logo.png") txt_clip = TextClip("中文水印", font='SimHei', fontsize=30, color='white') txt_clip = txt_clip.set_pos((logo.w/2, logo.h/2)).set_duration(video.duration) logo = CompositeVideoClip([logo, txt_clip.set_opacity(0.6)]) ``` 在上述代码中,首先加载了水印图片logo.png,然后创建了一个文本剪辑txt_clip,并设置其字体、字号和颜色。接着将文本剪辑居中放置在水印图片中心,并设置其持续时间与视频持续时间相同。最后将水印图片和文本剪辑合并成一个复合剪辑,并设置文本剪辑的透明度为0.6。 6. 将水印复合剪辑叠加到视频上,并输出新的视频文件: ```python result = CompositeVideoClip([video, logo]) result.write_videofile("video_with_watermark.mp4") ``` 在上述代码中,首先将水印复合剪辑和原视频复合成一个新的复合剪辑result,然后将其输出为视频文件video_with_watermark.mp4。 完整代码示例: ```python from moviepy.editor import * from moviepy.video.tools.drawing import * # 加载要添加水印的视频 video = VideoFileClip("video.mp4") # 加载水印图片,并在其上添加中文水印 logo = ImageClip("logo.png") txt_clip = TextClip("中文水印", font='SimHei', fontsize=30, color='white') txt_clip = txt_clip.set_pos((logo.w/2, logo.h/2)).set_duration(video.duration) logo = CompositeVideoClip([logo, txt_clip.set_opacity(0.6)]) # 将水印复合剪辑叠加到视频上,并输出新的视频文件 result = CompositeVideoClip([video, logo]) result.write_videofile("video_with_watermark.mp4") ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值