使用Python生成跑馬燈視頻的完整代碼
安裝依賴庫 首先,我們需要安裝opencv-python和Pillow兩個庫。您可以使用以下命令來安裝它們:
pip install opencv-python Pillow
接下來,我們來編寫一個簡單的Python腳本,它可以根據(jù)您提供的文本內(nèi)容生成一個跑馬燈視頻。下面是完整的代碼:
完整代碼
from PIL import Image, ImageDraw, ImageFont
import cv2
import numpy as np
from threading import Thread
def generate_video(text):
# 視頻分辨率
width = 1920
height = 1080
# 背景顏色和字體顏色
background_color = (255,0, 0, 255) # 紅色背景
text_color = (255, 255, 255) # 白色字體
# 字體大小和類型
font_size = int(height * 0.60)
font = ImageFont.truetype('msyh.ttc', font_size)
# 計算文本大小
text_size = font.getsize(text)
# 計算視頻長度
video_length = int((width + text_size[0]) / 20)
# 創(chuàng)建視頻寫入器
fourcc = cv2.VideoWriter_fourcc(*'mp4v')
video_writer = cv2.VideoWriter(r'E:\Template\word\marquee.mp4', fourcc, 60, (width, height))
def update_progress(progress):
print('\r[{}{}] {:.2f}%'.format('#' * int(progress * 10), ' ' * (10 - int(progress * 10)), progress * 100), end='')
def export_video():
for i in range(video_length):
# 創(chuàng)建背景圖像
img = Image.new('RGB', (width, height), background_color)
# 添加文本
draw = ImageDraw.Draw(img)
x = width - i * 20
y = int(height / 2 - text_size[1] / 2)
draw.text((x, y), text, fill=text_color, font=font)
# 寫入視頻幀
video_writer.write(cv2.cvtColor(np.array(img), cv2.COLOR_RGB2BGR))
# 更新進度條
update_progress(i / video_length)
# 關(guān)閉視頻寫入器
video_writer.release()
print('\n視頻導(dǎo)出完成!')
# 使用多線程優(yōu)化視頻導(dǎo)出速度
export_thread = Thread(target=export_video)
export_thread.start()
generate_video('這里是您要顯示的文本')
效果圖

在上面的代碼中,我們首先定義了一些參數(shù),包括視頻分辨率、背景顏色、字體顏色、字體大小和類型等。然后,我們使用Pillow庫中的ImageFont類來加載字體文件,并計算文本的大小。接著,我們根據(jù)文本大小計算出視頻的長度。
然后,我們創(chuàng)建一個OpenCV的VideoWriter對象,用于將圖像幀寫入視頻文件。在導(dǎo)出視頻的過程中,我們使用Pillow庫中的Image類創(chuàng)建一個純色背景圖像,并使用ImageDraw類在圖像上繪制文本。最后,我們將圖像轉(zhuǎn)換為NumPy數(shù)組,并使用OpenCV將其寫入視頻文件。
為了優(yōu)化視頻導(dǎo)出速度,我們使用了多線程技術(shù)。在導(dǎo)出過程中,我們還實時更新了一個進度條,以便用戶了解導(dǎo)出進度。
運行腳本 在運行上面的腳本之前,您需要確保您的計算機上安裝了微軟雅黑字體(msyh.ttc)。如果您使用的是其他字體文件,您需要將代碼中的
font = ImageFont.truetype('msyh.ttc', font_size)
這一行中的msyh.ttc替換為您使用的字體文件的路徑。
運行此腳本后,它將在E:\Template\word目錄下生成一個名為marquee.mp4的視頻文件。導(dǎo)出過程中,它會在控制臺中輸出進度條。
以上就是使用Python生成跑馬燈視頻的完整代碼的詳細(xì)內(nèi)容,更多關(guān)于Python跑馬燈視頻的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Python實現(xiàn)SRT字幕文件合并的實戰(zhàn)教程
這篇文章將探索如何通過Python腳本 Srt_Shift.py 來讀取、處理時間戳、合并字幕條目,并將合并后的字幕保存到新的SRT文件中,感興趣的小伙伴可以了解下2025-11-11
Python實現(xiàn)希爾排序算法的原理與用法實例分析
這篇文章主要介紹了Python實現(xiàn)希爾排序算法,簡單講述了希爾排序的原理并結(jié)合具體實例形式分析了Python希爾排序的具體實現(xiàn)方法與使用技巧,需要的朋友可以參考下2017-11-11
Pycharm創(chuàng)建項目時如何自動添加頭部信息
這篇文章主要介紹了Pycharm創(chuàng)建項目時 自動添加頭部信息,需要的朋友可以參考下2019-11-11
Python編程中非常重要卻又被嚴(yán)重低估的庫decorator
今天介紹的是一個已經(jīng)存在十年,但是依舊不紅的庫 decorator,好像很少有人知道他的存在一樣。本篇文章不會過多的向你介紹裝飾器的基本知識,我會默認(rèn)你知道什么是裝飾器,并且懂得如何寫一個簡單的裝飾器2021-10-10

