【字幕】字幕特效入门

news2024/9/21 2:42:54

前言

最近两周调研了一下字幕特效的底层程序逻辑,因为工作内容的原因,就分享几个自己找的链接具体细节就不分享了,CSDN也是我的个人笔记,只记录一些简单的内容用于后续自己方便查询,顺便帮助一下正在苦苦查阅资料入门的路人。总体来说先利用Aegisub学习ASS文件的字幕特效标签,然后借助脚本编写复杂的特效脚本,例如Python的pyonFX,以及c上位机python脚本的TCAX。Aegisub的lua脚本。如果是剪辑人员可以采用Pr+Ae以及剪映。本文章是程序化的字幕特效实现。
GITHUB pyonFX
Aegisub - 大神之路
关键字
字体添加背景

from pyonfx import *
import numpy as np
from PIL import Image
import math

#https://stackoverflow.com/questions/50297272/how-to-draw-text-with-image-in-background

io = Ass("in.ass")
meta, styles, lines = io.get_data()
img_path = "d:\Download\CgdkT.png"   

fill_image = Image.open(img_path)
fill_image = fill_image.convert('RGBA')
fill_np = np.array(fill_image)
fill_width, fill_height = fill_image.size

def romaji(line, l, fill_np, fill_width, fill_height):
    p_sh = Shape.rectangle()
    for syl in Utils.all_non_empty(line.syls):

        l.start_time = line.start_time
        l.end_time = line.end_time

        syl_width = syl.width
        syl_height = syl.height
        scale_x = fill_width / syl_width
        scale_y = fill_height / syl_height

        for pixel in Convert.text_to_pixels(syl):
            x, y = math.floor(syl.left) + pixel.x, math.floor(syl.top) + pixel.y
            print(x,y)
            x2, y2 = x, y
            alpha = ("\\alpha" + Convert.alpha_dec_to_ass(pixel.alpha) if pixel.alpha != 0 else "")
 
            img_x = int(pixel.x * scale_x) % fill_width
            img_y = int(pixel.y * scale_y) % fill_height
 
            color = fill_np[img_y, img_x]
            color_bgr = "&H{:02X}{:02X}{:02X}&".format(color[2], color[1], color[0])

            l.text = f"{{\\p1\\an7\\1c{color_bgr}\\pos({x},{y}){alpha}}}{p_sh}"
            io.write_line(l)

for line in lines:
    if not line.comment:
        romaji(line, line.copy(), fill_np, fill_width, fill_height)

io.save()
io.open_aegisub()
#ALKOON

Tips:除了主颜色外,其它颜色设置为透明
在这里插入图片描述
基本字幕特效
lua语法
国语视界
TCAX
B站示例

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1933373.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

.net core appsettings.json 配置 http 无法访问

1、在appsettings.json中配置"urls": "http://0.0.0.0:8188" 2、但是网页无法打开 3、解决办法,在Program.cs增加下列语句 app.UseAntiforgery();

数据库系统概论:数据库系统模式

数据库系统在我们的数字世界中扮演着至关重要的角色,无论是个人设备还是企业级应用,数据的有效管理和访问都是必不可少的。而数据库系统的模式结构是确保数据一致性和可访问性的关键组成部分。 数据库系统模式 基本概念 型和值 数据模型中有 型(type…

数据结构之细说链表

1.1顺序表的问题以及思考 经过上一篇顺序表的学习,我们知道顺序表还是有很多缺点 顺序表的缺点: 1.中间/头部的插入删除,实际复杂度为O(N) 2.增容需要申请新空间,拷贝数据,释放旧空间。会有不小的消耗 3.扩容一般…

【ECharts】使用 ECharts 处理不同时间节点的数据系列展示

使用 ECharts 处理不同时间节点的数据系列展示 在数据可视化中,我们经常遇到这样的问题:不同数据系列的数据点在时间轴上并不对齐。这种情况下,如果直接在 ECharts 中展示,图表可能会出现混乱或不准确。本文将通过一个示例代码&a…

vue3+vite从零架构:写组件、构建、打包并上传个人前端组件库至私有npm仓库最终在自己项目中下载并使用(超详细的流程,小编已实现)

目录 第一章 前言 第二章 准备工作 第三章 封装组件 3.1 文件结构 3.2 编写组件代码 第四章 项目打包 第五章 发布到npm 5.1 npm准备工作 5.2 发布npm包 ​编辑 第六章 从npm安装使用 第一章 前言 在我们很多开发过程中,不管是使用vue还是react&#x…

【Docker】Docker-harbor私有仓库部署与管理

目录 一.Harbor 概述 1.什么是Harbor 2.Harbor的特性 3.Harbor的构成 二.Harbor 部署 1.部署 Docker-Compose 服务 2.部署 Harbor 服务 3.启动 Harbor 4.创建新项目 5.创建用户 6.本地上传镜像 7.从Harbor下载镜像 三.镜像同步 1.定时拉取 2.主动推送 四.管理 …

掌握这些技巧,让你成为画册制作高手

在数字化的时代背景下,电子画册以其便捷的传播方式、丰富的视觉表现形式,赢得了大众的喜爱。它不仅能够在个人电脑上展现,还能通过智能手机、平板电脑等多种移动设备随时随地被访问和浏览。这种跨平台的支持,使得无论你身处何地&a…

基于STM32智能电子锁设计

1.简介 随着时代的高速发展,家居安全也成为人们日常生活中的一个安全问题。目前传统的门锁使用的是机械密码,在安全性方面表现不佳。这些缺点可以通过改用智能电子密码锁来弥补。智能电子锁是一种使用了现代电子技术的高科技产品,它的出现解决…

【iOS】类对象的结构分析

目录 对象的分类object_getClass和class方法isa流程和继承链分析isa流程实例验证类的继承链实例验证 类的结构cache_t结构bits分析实例验证属性properties方法methods协议protocolsro类方法 类结构流程图解 对象的分类 OC中的对象主要可以分为3种:实例对象&#xf…

江协科技51单片机学习- p27 I2C AT24C02存储器

🚀write in front🚀 🔎大家好,我是黄桃罐头,希望你看完之后,能对你有所帮助,不足请指正!共同学习交流 🎁欢迎各位→点赞👍 收藏⭐️ 留言📝​…

动手学深度学习——5.卷积神经网络

1.卷积神经网络特征 现在,我们将上述想法总结一下,从而帮助我们设计适合于计算机视觉的神经网络架构。 平移不变性(translation invariance):不管检测对象出现在图像中的哪个位置,神经网络的前面几层应该对…

C++从入门到起飞之——类的定义/实例化 全方位剖析!

个人主页:秋风起,再归来~ C从入门到起飞 个人格言:悟已往之不谏,知来者犹可追 克心守己,律己则安! 目录 1.类的定义 1.1、类定义格式 1.2、访问限定符 1.3、类域 2.实例化 2.…

基于Vue CLI 3构建Vue3项目(Vue2也可参考)

天行健,君子以自强不息;地势坤,君子以厚德载物。 每个人都有惰性,但不断学习是好好生活的根本,共勉! 文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。…

基于嵌入式Linux的高性能车载娱乐系统设计与实现 —— 融合Qt、FFmpeg和CAN总线技术

随着汽车智能化的发展,车载娱乐系统已成为现代汽车的标配。本文介绍了一个基于Linux的车载娱乐系统的设计与实现过程。该系统集成了音视频娱乐、导航、车辆信息显示等功能,旨在提供安全、便捷、丰富的驾驶体验。 1. 项目概述 随着汽车智能化的发展&…

基于Java的在线考试系统

你好呀,我是计算机学姐码农小野!如果有相关需求,可以私信联系我。 开发语言:Java 数据库:MySQL 技术:Java MySQL B/S架构 SpringBoot框架 工具:Eclipse、MySQL环境配置工具 系统展示 首…

备忘录删除了怎么恢复 备忘录误删恢复办法

备忘录作为我们日常生活中的得力助手,帮助我们记录重要事项和灵感,然而,使用中偶尔会出现误删的情况。若不能及时找回误删的内容,可能会造成重要信息的丢失,给我们的工作和生活带来不必要的麻烦。 如果你也担心备忘录…

【权威发布】2024年金融科技与信息技术国际会议(ICFTIT 2024)

2024年金融科技与信息技术国际会议 2024 International Conference on Financial Technology and Information Technology 【1】会议简介 2024年金融科技与信息技术国际会议将在中国成都隆重举行。本次会议围绕“金融创新”、“金融科技”与“信息技术”等核心议题,…

【STC89C51单片机】定时器中断系统

中断概念 中断是一种重要的硬件机制,用于在处理器正在执行程序时,能够及时响应某些外部或内部事件。中断可以临时中止当前正在执行的指令序列,转而去执行专门的中断服务程序(ISR,Interrupt Service Routine&#xff0…

navicat15已连接忘记密码

1.导出链接 2.使用文本打开 connections.ncx UserName"root" PasswordXXXX 3.复制加密密码&#xff0c;在线解密 代码在线运行 - 在线工具 php解密代码 <?php class NavicatPassword {protected $version 0;protected $aesKey libcckeylibcckey;protected…

沙尘传输模拟教程(基于wrf-chem)

沙尘传输模拟教程(基于wrf-chem) 文章目录 沙尘传输模拟教程(基于wrf-chem)简介实验目的wrf-chem简介 软件准备wps、wrf-chem安装conda安装ncl安装ncap安装 数据准备气象数据准备下垫面数据准备 WPS数据预处理namelist.wps的设置geogrid.exe下垫面处理ungrib.exe气象数据预处理…