这种图片是怎样实现的?

2016-09-03 20:12:48 +08:00
 dtysky

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

白色背景:

黑色背景:

原图:

4789 次点击
所在节点    程序员
13 条回复
lizon
2016-09-03 21:01:12 +08:00
PS 头顶 - 图像 - 模式 - 灰度
billlee
2016-09-03 21:06:51 +08:00
在 photoshop 点击「图层」-「图层蒙版」-「从透明区域」可以把 alpha 通道和 RGB 通道分开。
dtysky
2016-09-03 21:23:11 +08:00
@lizon
什么都没有发生。。。


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

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

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

原理明白了,所以系统渲染的时候黑色背景到白色背景对透明度的影响是一个 0~1 的系数?
billlee
2016-09-03 23:08:11 +08:00
@just4test 不透明度 alpha 的规范形式是 out = alpha * in + (1 - alpha) * backgroud.
loading
2016-09-03 23:16:32 +08:00
创意满分
fishcat
2016-09-05 09:56:29 +08:00
这个是不是老司机开车的新方法
pysama
2016-09-06 13:03:54 +08:00
创意好玩

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/303711

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX