- UID
- 2
- 积分
- 8682
- 帖子
- 2905
- 主题
- 199
- 论坛币
- 11764
- 威望
- 16
- EP值
- 2349
- MP值
- 15
- 阅读权限
- 200
- 注册时间
- 2011-8-3
- 在线时间
- 2597 小时
- 最后登录
- 2024-8-28
|
关于第一个问题, 解释起来可能有点复杂,
可以通过如下实验帮忙理解, 将 alpha1(255 - pixA) 改成alpha1(0), 看看效果会是咋样.
结果会是, 文字看起来很不平滑 (有锯齿), 这是很显然的, 因为像素点不可能无限的小, 可以把像素点看成是一个小的正方形.
因此边缘部分注定不平滑, 如何使其 "看起来更平滑" 呢, 这里就用到了一种 "抗锯齿"技术 --> Anti-Aliasing, 或者称为 过采样技术
Super-Sampling
具体如何可以Google一下.
两张效果图
因此一个文字上的点不全部都是一种灰度的, 边缘某些点可能淡一些. 将该灰度作为透明度通道,
就可以为Anti-Aliasing处理过的文字, 染上任何颜色了.
关于具体应用, PIX[2][idx + 3] 中保存的就是 透明度信息.
至于为什么使用 "255 - " 实际上是由于一般图形图像处理中, 使用的都是不透明度, 0表示透明, 255表示不透明, ASS中的刚好相反 (使用的是透明度).
-----------------------------------------------
问题2:像素字就是把字变成用一个一个像素堆起来的图片吧,那我们在assdraw里画出的矢量图 那一串儿代码放在脚本里 可以算像素字的一种吗?
对于前面半句, 可以这么理解, 但是后面半句是不合适的, 你都说了是矢量图了... 怎么又认为是像素图(位图)呢... 像素字其实没有特别定义, 通常可以理解成 "点凑字", 或者 "位图文字" (已区别ASS内部实现的矢量文字). 其构成要素可以简单到一个像素点, 或者是接近像素点级别的其他图元(广义上理解) (这句话也许我说的不明白, 举个粒子, 你可以把点换成是一个矢量图, 不过这个矢量图缩的很小, 然后由大量的矢量图拼凑成一个字--->也可以理解为广义上的一种 "像素字")
outline = TextOutlineDraw(Font, _txt, dx, dy) 应该是把字变成矢量图代码的函数吧
是的, ASS中, 直接写一个文字, 和给一个绘图代码 (最终显示效果可以和文字一模一样) 可以是等价的, 唯一区别是, 我们可以对矢量图形进行操作 (扭曲变形什么的). 还可以用于做Mask (遮罩) 等 ---> ASS 代码 clip 可以接受一个矢量绘图区域.
但是如果把blur(5) + bord(5) 复制到 奶大放出的那个像素字基础脚本里(就是最上面的那个) 边框效果根本就没有。那是说这个不是像素字么,那又为什么SubL里用的是Pix_Style 要具体问题具体分析, 没有效果的原因不止一种, 比如边框的透明度为255 (完全透明). (这里只是一个例子, 具体为什么不行, 你再分析下)
其实我还好奇怪,为什么使用了pos(0, 0) 字不会挤成一团的问题? 因为矢量绘图中可以包含初始点的坐标 (所以才在那个函数中给了 dx, dy这两个参数, 把这两个参数改成0试试)
最后 alpha3(HexToDec('77')) 和alpha3(119)是一样的吗?
效果上是等价的, 看你习惯那种数值计算了 (一般特效做多了, 会对数值有个经验性的认识)
p.s.1. 关于矢量图转像素图, 论坛上放过几个例子, 四月和疯子应该都用过的.
p.s.2. 牢骚一下, 能不能不要一下子提这么多问题... 有问题及时提出嘛, 分开几个帖, 交流起来也方便. 况且同时回答这么多问题, 也不一定一下子全部能接收...
p.s.3. 码这么多字真的很累耶.
|
|