У меня есть «старый» холст RGBA на клиенте и более новая версия того же изображения на сервере. Между ними есть небольшие визуальные различия.
Я хочу, чтобы сервер мог отправлять клиенту некоторую 'diff', чтобы иметь возможность обновить его изображение в соответствии с новой версией, не отправляя полностью снова данные изображения.
Идеальным будет двухкадровое прозрачное видео webm (ie. используйте webm для кодирования различий), но аппаратная поддержка webm с прозрачностью ужасна, а поддержка браузера для извлечения заданного c кадр из видео также очень плохой.
Вместо этого я использую режим смешивания hard light , который должен позволить мне отправить одно изображение клиенту, и преобразовать любой пиксель RGBA в любой другой (с погрешностью 1).
Как мне сгенерировать разностное изображение? Какая комбинация режимов наложения может генерировать diff
, если new = hardlight(old, diff)