当前位置: 首页 > news >正文

【字幕】字幕特效入门

前言

最近两周调研了一下字幕特效的底层程序逻辑,因为工作内容的原因,就分享几个自己找的链接具体细节就不分享了,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-backgroundio = 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.sizedef 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_timel.end_time = line.end_timesyl_width = syl.widthsyl_height = syl.heightscale_x = fill_width / syl_widthscale_y = fill_height / syl_heightfor pixel in Convert.text_to_pixels(syl):x, y = math.floor(syl.left) + pixel.x, math.floor(syl.top) + pixel.yprint(x,y)x2, y2 = x, yalpha = ("\\alpha" + Convert.alpha_dec_to_ass(pixel.alpha) if pixel.alpha != 0 else "")img_x = int(pixel.x * scale_x) % fill_widthimg_y = int(pixel.y * scale_y) % fill_heightcolor = 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站示例

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Android 使用WindowManager.LayoutParams窗口参数修改 Dialog 窗口的位置
  • Chapter 1:数据结构前言
  • 使用Python批量压缩图片
  • js获取和设置url参数
  • 7月17日学习打卡,数组
  • Android12 OTA全包升级清除用户数据
  • 基于matlab的深度学习案例及基础知识专栏前言
  • 生成Elasticsearch xpack安全认证证书
  • 巧用 VScode 网页版 IDE 搭建个人笔记知识库!
  • notepad++中文出现异体汉字,怎么改正
  • Matlab学习笔记01 - 基本数据类型
  • 算法刷题笔记 字符串哈希(C++实现)
  • 【07】分布式事务解决方案
  • Spring Boot请求参数映射:@RequestBody、@RequestParam和@RequestPart的应用
  • 破解反爬虫策略 /_guard/auto.js(一) 原理
  • SegmentFault for Android 3.0 发布
  • android图片蒙层
  • iOS小技巧之UIImagePickerController实现头像选择
  • JavaScript 事件——“事件类型”中“HTML5事件”的注意要点
  • PAT A1092
  • SpingCloudBus整合RabbitMQ
  • Vue 2.3、2.4 知识点小结
  • vue+element后台管理系统,从后端获取路由表,并正常渲染
  • vue中实现单选
  • Xmanager 远程桌面 CentOS 7
  • 百度贴吧爬虫node+vue baidu_tieba_crawler
  • 读懂package.json -- 依赖管理
  • 汉诺塔算法
  • 聊一聊前端的监控
  • 延迟脚本的方式
  • 怎样选择前端框架
  • C# - 为值类型重定义相等性
  • ​ 轻量应用服务器:亚马逊云科技打造全球领先的云计算解决方案
  • ​创新驱动,边缘计算领袖:亚马逊云科技海外服务器服务再进化
  • ​数据结构之初始二叉树(3)
  • ​香农与信息论三大定律
  • #13 yum、编译安装与sed命令的使用
  • #微信小程序(布局、渲染层基础知识)
  • $.ajax中的eval及dataType
  • (笔记)Kotlin——Android封装ViewBinding之二 优化
  • (定时器/计数器)中断系统(详解与使用)
  • (二)十分简易快速 自己训练样本 opencv级联lbp分类器 车牌识别
  • (二十六)Java 数据结构
  • (求助)用傲游上csdn博客时标签栏和网址栏一直显示袁萌 的头像
  • (学习日记)2024.03.12:UCOSIII第十四节:时基列表
  • (一)使用IDEA创建Maven项目和Maven使用入门(配图详解)
  • (转)淘淘商城系列——使用Spring来管理Redis单机版和集群版
  • .NET BackgroundWorker
  • .Net MVC + EF搭建学生管理系统
  • .Net 基于.Net8开发的一个Asp.Net Core Webapi小型易用框架
  • .Net 垃圾回收机制原理(二)
  • .Net6使用WebSocket与前端进行通信
  • .net项目IIS、VS 附加进程调试
  • @antv/g6 业务场景:流程图
  • [ Linux 长征路第五篇 ] make/Makefile Linux项目自动化创建工具