首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  程序员

这种图片是怎样实现的?

  •  
  •   dtysky · 2016-09-03 20:12:48 +08:00 · 3384 次点击
    这是一个创建于 870 天前的主题,其中的信息可能已经有所发展或是发生改变。

    不知如何下手去搜。。。
    是不是和透明通道的渲染算法有关?

    白色背景:

    黑色背景:

    原图:

    13 回复  |  直到 2016-09-06 13:03:54 +08:00
        1
    lizon   2016-09-03 21:01:12 +08:00
    PS 头顶 - 图像 - 模式 - 灰度
        2
    billlee   2016-09-03 21:06:51 +08:00   ♥ 1
    在 photoshop 点击「图层」-「图层蒙版」-「从透明区域」可以把 alpha 通道和 RGB 通道分开。
        3
    dtysky   2016-09-03 21:23:11 +08:00
    @lizon
    什么都没有发生。。。


    @billlee
    分离之后又为何会出现正文所述的效果呢?原理是什么?
        4
    CloudnuY   2016-09-03 21:26:41 +08:00
    原图中白色的地方不一定是白色或者透明
        5
    Hello1995   2016-09-03 22:12:14 +08:00 via iPhone
        6
    billlee   2016-09-03 22:26:31 +08:00
    @dtysky 我分析不动啊,好像是个非线性方程组
        7
    dtysky   2016-09-03 22:34:43 +08:00
    @Hello1995

    Get it, thanks !
        8
    just4test   2016-09-03 22:37:33 +08:00   ♥ 1
    假设这张图是黑白的。对于指定的点,亮度的 rgb 值都是 w ,透明度是 a ;图 1 的最终 rgb 值为 x , 图 2 的最终 rgb 值为 y 。
    那么就是很简单的方程组:
    白底: 1 * a + w = x
    黑底: 0 * a + w = y
    可以看出, w 就是图 2 的原图,而且图 2 每个点的亮度一定低于图 1.
        9
    dtysky   2016-09-03 22:58:16 +08:00
    @just4test

    看了下那个代码,他合成的时候只是单纯吧黑图画到了白图上面。。。只是预览的时候才计算,这就有点迷了。。。

    原理明白了,所以系统渲染的时候黑色背景到白色背景对透明度的影响是一个 0~1 的系数?
        10
    billlee   2016-09-03 23:08:11 +08:00   ♥ 1
    @just4test 不透明度 alpha 的规范形式是 out = alpha * in + (1 - alpha) * backgroud.
        11
    loading   2016-09-03 23:16:32 +08:00 via Android
    创意满分
        12
    fishcat   2016-09-05 09:56:29 +08:00
    这个是不是老司机开车的新方法
        13
    pysama   2016-09-06 13:03:54 +08:00
    创意好玩
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1575 人在线   最高记录 4236   ·  
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 17ms · UTC 16:41 · PVG 00:41 · LAX 08:41 · JFK 11:41
    ♥ Do have faith in what you're doing.
    沪ICP备16043287号-1