TCAX 字幕特效制作工具官方论坛 | ASS | TCAS | Python | Aegisub | Lua

标题: 如何取得該句第1個字的x,y座標 [打印本页]

作者: 影kage    时间: 2013-5-18 12:44:49     标题: 如何取得該句第1個字的x,y座標

如題所示
有點類似angisub中的 line.kara[1].center 和 line.kara[1].middle

之前用
GetVal(val_TextInitX) 和 GetVal(val_TextInitY)
得到的值都怪怪的...

作者: lilight    时间: 2013-5-18 13:32:22

val_TextInitX        = 40        # 第i句卡拉OK歌词的j个字符的左上角X轴坐标
val_TextInitY        = 41        # 第i句卡拉OK歌词的j个字符的左上角Y轴坐标

这两个我测试了下,应该不是绝对坐标,而是这个字符左上角的像素的相对坐标。
返回值是一个元组。
比如,下面这个是 _j 处的图像,*部分是字符所占位置,它的val_TextInitX返回的是2 , val_TextInitY 返回值为3.
xxxxx
xxxxx
x***x
x***x
xxxxx

如果像{k10}{k20}'字符' ,k10后面为空,两个返回值都为0。

根据测试结果,我初步估计是这样的意思。待奶大证实。
作者: lilight    时间: 2013-5-18 13:34:27

至于第一个字符的位子,当_j==0的时候,_x和_y 不行么
作者: saiyaku    时间: 2013-5-18 15:45:51

http://www.tcax.org/forum.php?mo ... &extra=page%3D1
寫了專用函數
作者: milkyjing    时间: 2013-5-18 21:41:10

lilight 发表于 2013-5-18 13:32
val_TextInitX        = 40        # 第i句卡拉OK歌词的j个字符的左上角X轴坐标
val_TextInitY        = 41 ...

你的理解是正确的..
作者: milkyjing    时间: 2013-5-18 21:44:04

关于具体实现, 看看这个脚本 http://www.tcax.org/forum.php?mod=viewthread&tid=278
应该就清楚了..

可以只关注 59, 60 行 (附近代码段)
作者: 影kage    时间: 2013-5-18 21:49:46

本帖最后由 影kage 于 2013-5-18 22:00 编辑
lilight 发表于 2013-5-18 13:34
至于第一个字符的位子,当_j==0的时候,_x和_y 不行么


我是要每個字都能抓到第一個字到最後一個字的座標
如果用_j==0的話 只能放個全域變數 將第一個座標給存起來
但是要抓最後一個字的座標就沒辦法了

感謝各位指導... 我回去試試看
如果沒問題的話 我會調成已解決
作者: lilight    时间: 2013-5-18 21:52:40

影kage 发表于 2013-5-18 21:49
我是要每個字都能抓到第一個字到最後一個字的座標
如果用_j==0的話 只能放個全域變數 將第一個座標給存起 ...

想到一个笨方法,_firstx = _x - (_a*_j)
作者: 影kage    时间: 2013-5-18 21:54:08

lilight 发表于 2013-5-18 21:52
想到一个笨方法,_firstx = _x - (_a*_j)

我有試過...因為空白的地方不會被計算到
所以有些地方產生的值會不一樣
作者: milkyjing    时间: 2013-5-18 23:27:50

影kage 发表于 2013-5-18 21:49
我是要每個字都能抓到第一個字到最後一個字的座標
如果用_j==0的話 只能放個全域變數 將第一個座標給存起 ...

灾厄封装的东西, 根据反馈, 还是比较方便使用的..
另外, 我上面附上的链接也值得一看..




欢迎光临 TCAX 字幕特效制作工具官方论坛 | ASS | TCAS | Python | Aegisub | Lua (http://tcax.org/) Powered by Discuz! X2