Защита фотографий от скриншотов с помощью временного дизеринга / Хабрахабр

Dec 23, 2012 00:27



Защита фотографий от скриншотов с помощью временного дизеринга / Хабрахабр

сегодня в 00:50Защита фотографий от скриншотов с помощью временного дизеринга

Обработка изображений*, Canvas*


Пару дней назад Facebook запустил свою альтернативу SnapChat - мобильное приложение Poke для передачи картинок, которые самоуничтожаются через 1, 3, 5 или 10 секунд. Конечно, можно успеть заснять скриншот, прежде чем фотография исчезнет с экрана. Отправитель получает уведомление, что получатель сделал скриншот, но уже беспомощен в такой ситуации.

Можно ли защитить фотографию от снятия скриншотов? Разработчик по имени Михай Парпарита (Mihai Parparita) предлагает использовать временный дизеринг (temporal dithering). Суть в том, что оригинал фотографии передаётся двумя кадрами: положительный и отрицательный. В «положительном» кадре к каждому пикселу добавляются случайные значения RGB. В «отрицательном» кадре они же отнимаются. За счёт быстрой смены кадров положительные и отрицательные значения должны сократиться, воссоздавая в глазу зрителя оригинальную фотографию.

Технически, метод реализуется за счёт загрузки фотографии в , где уже генерируются положительный и отрицательный кадр. Смена кадров осуществляется с помощью методаrequestAnimationFrame при каждом обновлении картинки на экране (например, 60 Гц).

Демо-страница (proof-of concept)
Исходный код программы

Автор рассуждает, что такой метод, конечно, не даёт надёжной защиты. Это просто маленький трюк, который легко обойти, если модифицировать программу для снятия скриншотов. С другой стороны, компания Apple вряд ли будет модифицировать программу для снятия скриншотов на iOS из-за такой мелочи.

Метод имеет и очевидную «аналоговую дыру», ведь скриншот можно снять с помощью другого устройства.-----------------------

http://habrahabr.ru/post/163329/

вчера в 23:21Skype-бот для голосовых конференций

Skype*, Python*


Вероятно, некоторые помнят сервис Skype Casts - публичные голосовые конференции, где каждый мог создать конференцию, которая анонсировалась на сайте skype.com. В 2008 году сервис был закрыт.

Сегодня единственная возможность хостить конференцию - держать запущенным Skype-клиент.
Это не удобно, потому как человек, который «держит» конференц-звонок не может принять входящий вызов, иначе конференция будет поставлена на удержание и никто в ней не сможет общаться. Если у хоста проблемы с интернетом - связь портится у всех. 
К тому же хостить звонок в котором 10-15 участников существенно нагружает компьютер.

Мы пытались решить эту задачу держа запущенным Skype на Windows-сервере. Чтобы звонок не обрывался когда все участники кладут трубку - приходилось запускать две копии клиента и держать второго как участника конференции. 
Но такая схема не очень стабильна, через 3-5 дней один из клиентов вылетает и звонок обрывается. Приходилось каждый переподнимать его вручную.

И вот наконец удалось найти стабльное и просто решение на основе skypekit позволяющие:

Постоянно держать звонок с помощью одной копии skypekit. 
Если все участники конференции положили трубки, звонок перезапускается как /golive

Хостить бота на Linux-сервере без X-ов.
Десктопный клиент требует для запуска X-сервер. Skypekit можно запускать без него, даже на VPS.
Доступен под все платформы Windows/Linux/Mac

Управлять ботом через комманды в чате
Бот умеет разграничивать права доступа, различать комманды отправленные из основного чата конференции и из других чатов.
При желании можно написать аналог irc-шного eggdrop.

Копирастизм, it, Хфатаграфия

Previous post Next post
Up