为了账号安全,请及时绑定邮箱和手机立即绑定

AviSynth——多种字幕效果伪实现方法

在AviSynth官方wiki里,有对subtitle一些方法实现的说明:

网址:http://avisynth.nl/index.php/Subtitle

我们可以通过一个引入参数的线性变化来控制这个参数所代表的实际意义


实现变色功能:

function test_1(clip C, string s, float f) {
    return C.Subtitle(s, x=400,size=64,font="WRYH.TTF",text_color=Round(f))   //将线性变量f作为文本颜色
\           .Subtitle(String(f, "%03.3f")) 
}


实现文字缩放:

function test_2(clip C, string s, float f) {
    return C.Subtitle(s, align=5,size=f,font="WRYH.TTF")                //将线性变量作为字号size
\           .Subtitle(String(f, "%03.3f")) 

实现文字位移:

function test_3(clip C, string s, float f) {
    return C.Subtitle(s, x=400,size=64,font="WRYH.TTF")             //将线性变量f作为x坐标
\           .Subtitle(String(f, "%03.3f")) 
}

实现文字旋转:

function test_4(clip C, string s, float f) {                                   //将线性变量f作为角度angle
    return C.Subtitle(s, align=5, font_angle=f)
    \       .Subtitle("font_angle = "+String(f, "%03.3f"), 
}


实现淡入淡出:

function test_5(clip C, string s, float f) {
    return C.Subtitle(s, x=400,size=64,font="WRYH.TTF",halo_color=$ff000000,text_color=fade(f))      
\           .Subtitle(String(f, "%03.3f")) 
}

这里,color本身是支持透明度的,但是要以一个特殊的类型呈现,目前还不知道什么能够把整型转换成这种类型的方法

目前我是写死了一个fade函数,比较傻

function  color(float f){
    
return Floor(f)==1?$ff000000:Floor(f)==2?$dd000000:Floor(f)==3?$bb000000:Floor(f)==4?$99000000:Floor(f)==5?$77000000:Floor(f)==6?$55000000:Floor(f)==7?$33000000:Floor(f)==8?$11000000:Floor(f)==9?$33000000:Floor(f)==10?$55000000:Floor(f)==11?$77000000:Floor(f)==12?$99000000:Floor(f)==13?$bb000000:Floor(f)==14?$dd000000:Floor(f)==15?$ee000000:$ff000000
}


引入代码:


LoadPlugin("C:/Program Files (x86)/AviSynth/plugins/x86/ffms2.dll")
FFVideoSource("C:\Users\cat\Desktop\subtitle\a.mp4")

s = "hello  word!"

return Animate(Last, 0, 255, "test_1", s, 1, s, 800)
   \ + Animate(Last, 0, 255, "test_2", s, 16.0, s, 64.0)
   \ + Animate(Last, 0, 255, "test_3", s, 0, s, 40)
   \ + Animate(Last, 0, 255, "test_4", s, 16.0, s, 64.0)
   \ + Animate(Last, 0, 255, "test_5", s, 0, s, 40)


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消