欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

使用Python生成跑馬燈視頻的完整代碼

 更新時(shí)間:2023年11月06日 11:34:53   作者:九狼  
這篇文章主要介紹了如何使用Python生成跑馬燈視頻,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

安裝依賴庫(kù) 首先,我們需要安裝opencv-python和Pillow兩個(gè)庫(kù)。您可以使用以下命令來(lái)安裝它們:

pip install opencv-python Pillow

接下來(lái),我們來(lái)編寫(xiě)一個(gè)簡(jiǎn)單的Python腳本,它可以根據(jù)您提供的文本內(nèi)容生成一個(gè)跑馬燈視頻。下面是完整的代碼:

完整代碼

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)

    # 計(jì)算文本大小
    text_size = font.getsize(text)

    # 計(jì)算視頻長(zhǎng)度
    video_length = int((width + text_size[0]) / 20)

    # 創(chuàng)建視頻寫(xiě)入器
    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)

            # 寫(xiě)入視頻幀
            video_writer.write(cv2.cvtColor(np.array(img), cv2.COLOR_RGB2BGR))

            # 更新進(jìn)度條
            update_progress(i / video_length)

        # 關(guān)閉視頻寫(xiě)入器
        video_writer.release()
        print('\n視頻導(dǎo)出完成!')

    # 使用多線程優(yōu)化視頻導(dǎo)出速度
    export_thread = Thread(target=export_video)
    export_thread.start()

generate_video('這里是您要顯示的文本')

效果圖

在上面的代碼中,我們首先定義了一些參數(shù),包括視頻分辨率、背景顏色、字體顏色、字體大小和類型等。然后,我們使用Pillow庫(kù)中的ImageFont類來(lái)加載字體文件,并計(jì)算文本的大小。接著,我們根據(jù)文本大小計(jì)算出視頻的長(zhǎng)度。

然后,我們創(chuàng)建一個(gè)OpenCV的VideoWriter對(duì)象,用于將圖像幀寫(xiě)入視頻文件。在導(dǎo)出視頻的過(guò)程中,我們使用Pillow庫(kù)中的Image類創(chuàng)建一個(gè)純色背景圖像,并使用ImageDraw類在圖像上繪制文本。最后,我們將圖像轉(zhuǎn)換為NumPy數(shù)組,并使用OpenCV將其寫(xiě)入視頻文件。

為了優(yōu)化視頻導(dǎo)出速度,我們使用了多線程技術(shù)。在導(dǎo)出過(guò)程中,我們還實(shí)時(shí)更新了一個(gè)進(jìn)度條,以便用戶了解導(dǎo)出進(jìn)度。

運(yùn)行腳本 在運(yùn)行上面的腳本之前,您需要確保您的計(jì)算機(jī)上安裝了微軟雅黑字體(msyh.ttc)。如果您使用的是其他字體文件,您需要將代碼中的

font = ImageFont.truetype('msyh.ttc', font_size)

這一行中的msyh.ttc替換為您使用的字體文件的路徑。

運(yùn)行此腳本后,它將在E:\Template\word目錄下生成一個(gè)名為marquee.mp4的視頻文件。導(dǎo)出過(guò)程中,它會(huì)在控制臺(tái)中輸出進(jìn)度條。

以上就是使用Python生成跑馬燈視頻的完整代碼的詳細(xì)內(nèi)容,更多關(guān)于Python跑馬燈視頻的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

最新評(píng)論