如何计算强光复合混合模式的逆?

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

【讨论】:

以上是关于如何计算强光复合混合模式的逆?的主要内容,如果未能解决你的问题,请参考以下文章

PS中混合模式是什么意思?

ps图层混合模式

混合云模式下的计算架构设计及其演进 | 趋势解读

混合模式(策略模式+工厂方法模式+门面模式)

IOS OpenGL ES GPUImage 强光混合 GPUImageHardLightBlendFilter

混合模式的 H2 数据库远程连接 (Auto_server=true)