『漫游』酷论坛>『字幕制作交流区』>给POPSUB的一个建议
给POPSUB的一个建议
雷鸣@2006-01-20 15:52
点击播放器窗口可以获取当前点坐标。能不能加入这样一个功能,直接把点坐标代入{\pos(s,y)}加到字幕行去?
kutinasi@2006-01-21 17:20
想做的,不过因为种种原因,
最近精力没放在改程序上。
V1046-R@2006-01-21 20:53
手写吧,也不算多麻烦-w-
K大-w-,忙里偷闲吧~
雷鸣@2006-01-29 15:49
这是我的想法:
在窗体添加一个检查框(addpos),caption="直接加入点坐标"。
然后在“点击播放器窗口”事件的适当处加入一下代码:
if addpos.Value then
if mid$(字幕.text,1,6) = "{\pos(" then
for i = 1 to len(字幕.text)
if mid$(字幕.text,i,1) = "}" then exit for
next
字幕.text = "{\pos(" + 点坐标x + "," + 点坐标y + ")}" + mid$(字幕.text,i+1)
else
字幕.text = "{\pos(" + 点坐标x + "," + 点坐标y + ")}" + 字幕.text
end if
end if
此代码尚需改进,未经测试。
雷鸣@2006-02-06 13:24
1、楼上的代码不能适应“pos语句不在行开头”的情况。
以下是“能够适应”的代码
rem subt存储的是字幕,x是横坐标,y是纵坐标
function addpos(subt,x,y)
sublen=len(subt)
exf=false
for cp=1 to sublen-5
if format$(mid$(subt,cp,6))="{\POS(" then
rcp=cp
exf=true
end if
if exf then
for cp=rcp to sublen
if mid$(subt,cp,1)="}" then exf2=true:exit for
next
if exf2 then
subt1=mid$(subt,1,rcp-1)
subt2=mid$(subt,cp+1)
addpos=subt1+"{\pos("+trim(str(x))+","+trim(str(y))+")}"+subt2
else
msgbox("字幕语句中的POS代码有错。",,"提示")
end if
else
addpos="{\pos("+trim(str(x))+","+trim(str(y))+")}"+subt
end if
end function
未经调试,请谨慎使用
2、popsub的“窗口大小、位置的记忆功能”:
最大化窗口后,关闭popsub的时候就记忆了“最大化”的坐标和大小
关闭时检查一下“form.windowsstate”,如果是“2”就表明处在最大化状态,不要记录大小和位置,下次启动恢复窗口大小后把它设为“2”即可。
3、坐标自动添加功能可以使“为日文歌词汉字注音”更加快捷。
建议再增加一个“锁定x/y坐标”的功能。
添加2个check和text,两个check的caption分别叫“锁定x坐标”和“锁定y坐标”。两个文本框输入要锁定的值。
这样,在标注音的时候就可以更方便的对齐注音。
| TOP