Pull to refresh

Как я хотел сделать Ambilight для мобильного телефона и что из этого вышло

Reading time 2 min
Views 7.2K
Итак, речь пойдет об том, как я попытался сделать Ambilight для своего телефона (HTC Hero с Android на борту). На всякий случай напомню, что Ambilight — это технология подсветки телевизора, основывающаяся на показываемой картинке. Как заявляет фирма Philips, продвигающая её, ambilight улучшает восприятие фильма в темноте и уменьшает нагрузку на глаза.

Нам понадобится телефон и немножко программирования. Первым делом учимся вытаскивать скриншот с девайса с помощью ddmlib.jar из $SDK_PATH/tools:

AndroidDebugBridge bridge = AndroidDebugBridge.createBridge();
IDevice[] devices = bridge.getDevices();
RawImage rawImage = this.device.getScreenshot();

Здесь же лежат первые грабли — очень часто это делать не получиться — максимум, что нам светит это 2-3 кадра в секунду. Далее действуем по несложному алгоритму:

1) создаем квантованную цветовую палитру текущего кадра — для всех цветов выполняем преобразование:
int color = ...
int r = (color >> 16) & 0xff;
int g = (color >> 8) & 0xff;
int b = color & 0xff;
r -= (r%16);
g -= (g%16);
b -= (b%16);
Color quantedColor = new Color(r, g, b) ;

2) Находим наиболее часто использующийся цвет
3) Тут, по-хорошему, должно лежать длинное описание того, как я подключал всякие светодиоды и убил выходные на это, но его не будет) Вместо этого я использовал в качестве подсветки подручное средство — экран ноутбука. И вот, что вышло в итоге:


Целесообразность такого решения — под некоторым вопросом (:, но главная цель (сделать прикольную штуку) выполнена. При большом желании, можно и дальше развить мысль — например разбивать изображение на 4-6 частей и обеспечивать подсветку для каждого сегмента. Можно приспособить плату Arduino для управления светодиодами или сконструировать робота Lego Mindstorms, размахивающего ими. В общем, возможностей — куча.

На этом месте я вдруг осознал что страдаю какой-то хренью. Настоящий ambilight для мобильных телефонов могли бы реализовывать сами производители, сделав полупрозрачный матовый корпус у какой-нибудь экспериментальной модели. Тот же Hero мог бы выглядеть примерно так:
image

Профит очевиден — телефон со столь необычной фичей наверняка будет привлекать внимание и найдет много новых применений в повседневной жизни. Кто там главный по инновациям — дерзайте)

jeck_landin
Tags:
Hubs:
+60
Comments 33
Comments Comments 33

Articles