roboforum.ru

Технический форум по робототехнике.

Подсветка а-ля Ambilight

Правила форума
В этом форуме новые темы не создаются, однако обсуждение допустимо.

Re: Подсветка а-ля Ambilight

Angel71 » 02 мар 2010, 03:22

:) накладненько однако весь экран гонять. :wink: сделай лучше так: получил размер экрана, вычислил нужные блоки, загнал в 3-4 (я все 4 стороны обрабатывал) картинки. и уже с ними работай, например поищи как blur можно применить. непомню, в gdi+ есть он или нет, но в сети явно должны быть примеры реализации или библиотеки. коофициент размытия можно побольше выставить. я в wpf примерно так и делаю. только я сразу указываю исходную область виртуального экрана и оно директиксом уже само аппаратно применяет блур и перемаштабирует (а зачем мне в проге громадный кусок картинки?). очень быстро всё, но доступа к оверлеям я таки и не смог в wpf добиться. так что пока забил

Добавлено спустя 13 минут 48 секунд:
а, забыл. кроме BitBlt есть еще StretchBlt подобные функции

Re: Подсветка а-ля Ambilight

Kurok » 02 мар 2010, 10:24

Так никто не собирается грабить весь экран , в функции можно указывать любые области и размеры для захвата
Код: Выделить всёРазвернуть
Функция BitBlt выполняет передачу битовых блоков данных о цвете,
соответствующих прямоугольнику пикселей из заданного исходного контекста
устройства в целевой контекст устройства.

Re: Подсветка а-ля Ambilight

boez » 02 мар 2010, 13:06

Там самое главное в работе с битамапами - не пользоваться GetPixel - потому что она делает вызов ядра, и на каждый пуксель мы получаем 2 переключения контекста юзер/ядро, такой процесс проц жрет по взрослому. А клипбоард там не особо нужен (из него все равно потом битмап получится), я например, когда мне надо было пошаманить с пикселями оптом, использовал GetDIBits() из WinAPI - возможно в делфях есть к ней обертка, а нету - так просто вызвать. Она из виндового битмапа может сделать массив RGB-значений, при этом делается только конечное число системных вызовов (может вообще один), в результате время выполнения функции намного меньше, чем цикла с GetPixel.

Re: Подсветка а-ля Ambilight

Angel71 » 02 мар 2010, 17:03

Kuroks, пока я вижу это:
Код: Выделить всёРазвернуть
bmp.Width := Screen.Width;
bmp.Height := Screen.Height;
BitBlt(bmp.Canvas.Handle, 0, 0, Screen.Width, Screen.Height, GetDC(GetDesktopWindow), 0, 0, SRCCopy);

:) лан, я свои мысли высказал

Re: Подсветка а-ля Ambilight

Kurok » 02 мар 2010, 17:25

Нашел инфу по DirectDraw
http://www.realcoding.net/articles/dire ... denie.html

Добавлено спустя 9 минут 3 секунды:
Angel71 писал(а):Kuroks, пока я вижу это:
Код: Выделить всёРазвернуть
bmp.Width := Screen.Width;
bmp.Height := Screen.Height;
BitBlt(bmp.Canvas.Handle, 0, 0, Screen.Width, Screen.Height, GetDC(GetDesktopWindow), 0, 0, SRCCopy);

:) лан, я свои мысли высказал

Только лучше использовать GetDcEx

Добавлено спустя 2 минуты 31 секунду:
boez писал(а):Там самое главное в работе с битамапами - не пользоваться GetPixel - потому что она делает вызов ядра, и на каждый пуксель мы получаем 2 переключения контекста юзер/ядро, такой процесс проц жрет по взрослому. А клипбоард там не особо нужен (из него все равно потом битмап получится), я например, когда мне надо было пошаманить с пикселями оптом, использовал GetDIBits() из WinAPI - возможно в делфях есть к ней обертка, а нету - так просто вызвать. Она из виндового битмапа может сделать массив RGB-значений, при этом делается только конечное число системных вызовов (может вообще один), в результате время выполнения функции намного меньше, чем цикла с GetPixel.

Спасибо!
Есть в Delphi такая фунция , нужно попробовать. http://delphi7.info/?module=winapi&l=g&f=GetDIBits

Re: Подсветка а-ля Ambilight

Angel71 » 02 мар 2010, 17:27

:) может и лучше. я уже слабо рзбираюсь в фичах, тянущихся еще со времён винды 3.11
:wink: как никак уже давно появилась второе поколение граф подсистемы, да и директикс уже 12 маячит, "я весь там"

Re: Подсветка а-ля Ambilight

Kurok » 04 мар 2010, 20:55

Написал свою программу .
Поразился в различии скорости обработки, у меня с Boblight на HTPC с процем Atom при проигрывании HD-1080 было отставание цвета на 1-5 сек. Теперь же все четко без каких либо отставаний и реакция мгновенная, появился эффект обьема при динамических сценах. Работает в Win 7 с темой AERO без тормозов.
Прогу сделал без всяких надстроек одним файлом, корректно работает со спящим режимом и гибернацией.
Есть ползунок яркость и насыщеность,планирую добавить регулировку температуры цвета.
Прога пока работает только с Carduino по USB , доведу до ума сделаю для выших девайсов и выложу.
Последний раз редактировалось Kurok 06 мар 2010, 10:50, всего редактировалось 3 раз(а).

Re: Подсветка а-ля Ambilight

NYKLE » 04 мар 2010, 22:55

Здрасте. Вот хотел сделать амбилайт наткнулся на этот форум.
Возник вопрос. можно ли сделать работу агрегата не програмную а апаратную и ставить на вход не COM или USB, а VGA или RGB?

Добавлено спустя 2 минуты 6 секунд:
Нашёл вот такую микросборку, но немогу понять можно ли из неё что либо получить?
http://www.analog.com/static/imported-f ... D9882A.pdf

Re: Подсветка а-ля Ambilight

sandro » 05 мар 2010, 00:29

NYKLE ,про RGB вам сюда http://steffenschuette.de/steffenschuet ... index.html Удачи! Она не помешает ,это точно !

Re: Подсветка а-ля Ambilight

Yurik » 05 мар 2010, 02:45

Загорелся желанием повторить сей девайс, но как начинающий электронщик, в этом деле знаний у меня маловато.Особенно по части микроконтроллеров. Надеюсь на вашу помощь. Подскажите чем можно прошить ATMEGA8. Дайте ссылку на схемку простого и рабочего программатора, если таков существует.

Re: Подсветка а-ля Ambilight

sandro » 05 мар 2010, 02:51


Re: Подсветка а-ля Ambilight

-= Александр =- » 05 мар 2010, 15:43

NYKLE писал(а):q.3Нашёл вот такую микросборку, но немогу понять можно ли из неё что либо получить?
http://www.analog.com/static/imported-f ... D9882A.pdf


Из нее можно получить пиксели в цифровом виде на дикой скорости. Получить их довольно просто, а вот обработать... :roll:

Re: Подсветка а-ля Ambilight

Duhas » 05 мар 2010, 16:34

а хде ее купить бы ?

дык с обработкой в любом случае придется повозиться.. а так после нее нужен тока шустрый камень...

Re: Подсветка а-ля Ambilight

-= Александр =- » 05 мар 2010, 16:37

Ищи там: http://www.efind.ru/
Или обратись к ремонтникам мониторов - они популярный аналог подскажут.
После нее по-хорошему ПЛИС надо. На ней и параллельную обработку и ШИМ сразу замутить можно.

Re: Подсветка а-ля Ambilight

Duhas » 05 мар 2010, 16:43

тоже вариант... как рас для продолжения проекта )


Rambler\'s Top100 Mail.ru counter