网站界面设计起着决定性作用,《企业宣传片制作》,用wordpress搭建完整网站教程,网站视听内容建设前言
最近两周调研了一下字幕特效的底层程序逻辑#xff0c;因为工作内容的原因#xff0c;就分享几个自己找的链接具体细节就不分享了#xff0c;CSDN也是我的个人笔记#xff0c;只记录一些简单的内容用于后续自己方便查询#xff0c;顺便帮助一下正在苦苦查阅资料入门…前言
最近两周调研了一下字幕特效的底层程序逻辑因为工作内容的原因就分享几个自己找的链接具体细节就不分享了CSDN也是我的个人笔记只记录一些简单的内容用于后续自己方便查询顺便帮助一下正在苦苦查阅资料入门的路人。总体来说先利用Aegisub学习ASS文件的字幕特效标签然后借助脚本编写复杂的特效脚本例如Python的pyonFX,以及c上位机python脚本的TCAX。Aegisub的lua脚本。如果是剪辑人员可以采用PrAe以及剪映。本文章是程序化的字幕特效实现。 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()
#ALKOONTips:除了主颜色外其它颜色设置为透明 基本字幕特效 lua语法 国语视界 TCAX B站示例