Здравствуйте, bobik123, Вы писали:
B>Здравствуйте, lboss, Вы писали:
B>А как черный цвет на исходной картинке от черного цвета в результате XOR? Или я что-то недопонял?
Хм... если на исходной картинке и на новой картинке цвета совпадают, то в результате XOR получится 0 — то есть черный цвет. Свойством операции XOR является не потеря данных: то есть если Вы к получившейся картинке сделаете операцию XOR с оригинальной, то вы получите текущую картинку. От сюда получается: надо один раз передать базовую картинку, а потом для передачи новой картинки, делать XOR с базовой — в результате в местах которые не поменялись будет черный цвет, который хорошо сожмётся при передаче. На стороне клиента надо будет просто сделать XOR и базовой картинкой и получите текущую.
В реальности, есть пару но: 1. если сжимать jpeg или чем-то похожим, то там будет потеря цвета, в результате картинка на клиенте будет плыть — придётся периодически пересылать базовую картинку целиком, 2. чтобы не накапливать разницу, надо базовую картинку всё время менять на текущую. Но тут возникают сложности такого порядка: по идее если вы транслируете потоковое видео, то разные клиенты с разной скоростью принимают данные. И хорошо бы было пропускать кадры в середине если клиент медленный... В общем если интересно — об этом проще почитать.