0

我在客户端上有一个“旧”RGBA 画布,在服务器上有一个相同图像的更新版本。它们之间存在细微的视觉差异。

我希望服务器能够向客户端发送一些“差异”,以便能够更新它的图像以匹配新版本,而不必再次发送整个图像数据。

两帧透明 webm 视频将是理想的(即使用 webm 对差异进行编码),但对具有透明度的 webm 的硬件支持非常糟糕,并且浏览器对从视频中提取特定帧的支持也很差。

相反,我正在考虑使用强光混合模式,这应该允许我将单个图像发送到客户端,并将任何 RGBA 像素转换为任何其他像素(误差幅度为 1)。

我应该如何生成差异图像?diff如果可以生成哪种混合模式组合new = hardlight(old, diff)

4

1 回答 1

0

让 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
于 2020-01-10T13:49:44.293 回答