python读取歌词文本,并显示在图片上,制作视频

该博客介绍了如何使用Python从文本文件读取歌词,将歌词显示到图片上,再通过组合多张图片生成视频。具体步骤包括准备歌词文本,使用代码读取,生成空白图片写入歌词,最后合成视频。
摘要由CSDN通过智能技术生成

首先是歌词的准备,我们放到txt文本中即可

 写给代码将歌词读入

txt = ''
with open("一曲相思.txt", "r",encoding='utf-8') as f:  # 打开文件
    data = f.readlines()  # 读取文件
    print(data)
for i in range(len(data)):
    txt += data[i]
print(txt)

显示结果如下:

 然后再对得到的汉字进行梳理,写到图片上,这里我们可以生成空白图片进行书写。

import cv2
import os
import numpy as np
from PIL import ImageFont, ImageDraw, Image

#初始化参数
x = 300   #横坐标(左右)
y = 20   #纵坐标(上下)
# fps = 30
# size = (1280, 720)
# name = 1
# videowriter = cv2.VideoWriter("result.mp4",-1, fps, size)
txt = ''
with open("一曲相思.txt
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
好的,实现这个任务需要用到Python的一些库,主要是jieba和wordcloud。jieba是一个中文分词库,可以将中文文本切分成单词;wordcloud是一个词云库,可以根据词频生成词云图。 首先,我们需要读取文本内容。假设你的文本内容保存在一个名为"car.txt"的文件中,可以使用以下代码读取文本内容: ```python with open('car.txt', 'r', encoding='utf-8') as f: text = f.read() ``` 接下来,我们需要对文本进行分词。这里我们使用jieba库对文本进行分词,并把分好的词保存在一个列表中: ```python import jieba # 对文本进行分词 words = jieba.lcut(text) ``` 接着,我们需要对分好的词进行词频统计。这里我们可以使用Python中的collections库中的Counter类来实现: ```python from collections import Counter # 统计词频 word_counts = Counter(words) ``` 最后,我们可以使用wordcloud库生成词云图。这里我们需要指定生成词云图的形状,这里我们选择汽车形状。首先,我们需要下载汽车形状的图片,并把它保存在本地。然后,我们可以使用wordcloud库的WordCloud类来生成词云图: ```python import numpy as np from PIL import Image from wordcloud import WordCloud # 读取汽车形状的图片 car_mask = np.array(Image.open('car.png')) # 配置词云参数 wc = WordCloud( background_color='white', mask=car_mask, font_path='msyh.ttc' # 指定中文字体 ) # 生成词云图 wc.generate_from_frequencies(word_counts) # 显示词云图 import matplotlib.pyplot as plt plt.imshow(wc) plt.axis('off') plt.show() ``` 其中,msyh.ttc是一个中文字体,需要从本地安装。 综上,以下是完整代码: ```python import jieba from collections import Counter import numpy as np from PIL import Image from wordcloud import WordCloud import matplotlib.pyplot as plt # 读取文本内容 with open('car.txt', 'r', encoding='utf-8') as f: text = f.read() # 对文本进行分词 words = jieba.lcut(text) # 统计词频 word_counts = Counter(words) # 读取汽车形状的图片 car_mask = np.array(Image.open('car.png')) # 配置词云参数 wc = WordCloud( background_color='white', mask=car_mask, font_path='msyh.ttc' # 指定中文字体 ) # 生成词云图 wc.generate_from_frequencies(word_counts) # 显示词云图 plt.imshow(wc) plt.axis('off') plt.show() ``` 注意,这里的词云图并不是完美的汽车形状,因为有些词语可能会超出汽车的边界。如果你想要更精确的汽车形状,可以使用其他工具来裁剪图片,或者手动调整词云图的参数。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

bug生成中

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值