【发布时间】:2017-05-04 15:16:42
【问题描述】:
我正在创建一个带有水和土地的动画 gif。陆地部分有海岸,因此在某些情况下水会覆盖这些海岸。但是,我希望海岸在水下仍然可以看到。基本上,想象一个代表水的透明 png,在另一个有沙子的上面。合并的 2 张图像可以作为第三张图像查看。
我的问题是 - 我将如何根据顶部的 RGBA(具有透明度)和底部的 RGB 值计算新像素的 RGB 值,以模仿自然的外观。
我会自己更改透明度级别,看看什么最适合我,但我缺少一个公式。
编辑: atm 我确实有一个想法 - 取水的透明度水平的百分比,并根据该百分比计算新的 RGB。对沙子像素执行相同操作,但使用“剩余”百分比(100-透明度%)
ie(为简单起见,部分以 % 为单位) (R1,G1,B1, 40) (R2,G2,B2) = 第一组的 40% + 第二组的 60%
【问题讨论】:
-
Lab 中两种颜色的平均值:stackoverflow.com/questions/398224/…
-
见stackoverflow.com/questions/1944095/how-to-mix-two-argb-pixels。作为动画 GIF,你会遇到一些麻烦,因为 GIF 在它们可以包含的颜色数量上受到限制,并且混合会生成 很多 新颜色。
标签: image-processing