如何计算强光复合混合模式的逆?
Posted
技术标签:
【中文标题】如何计算强光复合混合模式的逆?【英文标题】:How to calculate inverse of hard-light composite blend mode? 【发布时间】:2020-04-28 03:25:47 【问题描述】:我在客户端上有一个“旧”RGBA 画布,在服务器上有一个相同图像的更新版本。它们之间存在细微的视觉差异。
我希望服务器能够向客户端发送一些“差异”,以便能够更新其图像以匹配新版本,而无需再次发送整个图像数据。
两帧透明 webm 视频将是理想的(即使用 webm 对差异进行编码),但对具有透明度的 webm 的硬件支持非常糟糕,并且浏览器对从视频中提取特定帧的支持也很差。
相反,我正在考虑使用 hard light 混合模式,它应该允许我向客户端发送单个图像,并将任何 RGBA 像素转换为任何其他像素(误差幅度为 1)。
我应该如何生成差异图像?如果new = hardlight(old, diff)
,哪种混合模式组合可以生成diff
【问题讨论】:
请注意,目标也是将 alpha 更新为新值。 Hardlight() 不能这样做,因为没有办法使用强光混合来降低不透明度 【参考方案1】:让 Ch, Cw, Cd 是你拥有的值,你想要的值,以及 diff 值:
if (Cw > Ch)
Cd = 1 - (1-Cw)/2(1-Ch)
else if (Cw < Ch)
Cd = Cw/2Ch
else
Cd = 0.5
【讨论】:
以上是关于如何计算强光复合混合模式的逆?的主要内容,如果未能解决你的问题,请参考以下文章