накладненько однако весь экран гонять. сделай лучше так: получил размер экрана, вычислил нужные блоки, загнал в 3-4 (я все 4 стороны обрабатывал) картинки. и уже с ними работай, например поищи как blur можно применить. непомню, в gdi+ есть он или нет, но в сети явно должны быть примеры реализации или библиотеки. коофициент размытия можно побольше выставить. я в wpf примерно так и делаю. только я сразу указываю исходную область виртуального экрана и оно директиксом уже само аппаратно применяет блур и перемаштабирует (а зачем мне в проге громадный кусок картинки?). очень быстро всё, но доступа к оверлеям я таки и не смог в wpf добиться. так что пока забил
Добавлено спустя 13 минут 48 секунд: а, забыл. кроме BitBlt есть еще StretchBlt подобные функции
Функция BitBlt выполняет передачу битовых блоков данных о цвете, соответствующих прямоугольнику пикселей из заданного исходного контекста устройства в целевой контекст устройства.
Там самое главное в работе с битамапами - не пользоваться GetPixel - потому что она делает вызов ядра, и на каждый пуксель мы получаем 2 переключения контекста юзер/ядро, такой процесс проц жрет по взрослому. А клипбоард там не особо нужен (из него все равно потом битмап получится), я например, когда мне надо было пошаманить с пикселями оптом, использовал GetDIBits() из WinAPI - возможно в делфях есть к ней обертка, а нету - так просто вызвать. Она из виндового битмапа может сделать массив RGB-значений, при этом делается только конечное число системных вызовов (может вообще один), в результате время выполнения функции намного меньше, чем цикла с GetPixel.
boez писал(а):Там самое главное в работе с битамапами - не пользоваться GetPixel - потому что она делает вызов ядра, и на каждый пуксель мы получаем 2 переключения контекста юзер/ядро, такой процесс проц жрет по взрослому. А клипбоард там не особо нужен (из него все равно потом битмап получится), я например, когда мне надо было пошаманить с пикселями оптом, использовал GetDIBits() из WinAPI - возможно в делфях есть к ней обертка, а нету - так просто вызвать. Она из виндового битмапа может сделать массив RGB-значений, при этом делается только конечное число системных вызовов (может вообще один), в результате время выполнения функции намного меньше, чем цикла с GetPixel.
может и лучше. я уже слабо рзбираюсь в фичах, тянущихся еще со времён винды 3.11 как никак уже давно появилась второе поколение граф подсистемы, да и директикс уже 12 маячит, "я весь там"
Написал свою программу . Поразился в различии скорости обработки, у меня с Boblight на HTPC с процем Atom при проигрывании HD-1080 было отставание цвета на 1-5 сек. Теперь же все четко без каких либо отставаний и реакция мгновенная, появился эффект обьема при динамических сценах. Работает в Win 7 с темой AERO без тормозов. Прогу сделал без всяких надстроек одним файлом, корректно работает со спящим режимом и гибернацией. Есть ползунок яркость и насыщеность,планирую добавить регулировку температуры цвета. Прога пока работает только с Carduino по USB , доведу до ума сделаю для выших девайсов и выложу.
Последний раз редактировалось Kurok 06 мар 2010, 10:50, всего редактировалось 3 раз(а).
Здрасте. Вот хотел сделать амбилайт наткнулся на этот форум. Возник вопрос. можно ли сделать работу агрегата не програмную а апаратную и ставить на вход не COM или USB, а VGA или RGB?
Загорелся желанием повторить сей девайс, но как начинающий электронщик, в этом деле знаний у меня маловато.Особенно по части микроконтроллеров. Надеюсь на вашу помощь. Подскажите чем можно прошить ATMEGA8. Дайте ссылку на схемку простого и рабочего программатора, если таков существует.
дык с обработкой в любом случае придется повозиться.. а так после нее нужен тока шустрый камень...
«Как сердцу выразить себя? … Мысль изреченная есть ложь!» В этом мире меня подводит доброта и порядочность... "двое смотрят в лужу, один видит лужу, другой отраженные в ней звезды"
Ищи там: http://www.efind.ru/ Или обратись к ремонтникам мониторов - они популярный аналог подскажут. После нее по-хорошему ПЛИС надо. На ней и параллельную обработку и ШИМ сразу замутить можно.
Ниндзя - круче всех. Они умеют ходить по воде, делить на ноль и угадывать шаффл в АйПоде.
«Как сердцу выразить себя? … Мысль изреченная есть ложь!» В этом мире меня подводит доброта и порядочность... "двое смотрят в лужу, один видит лужу, другой отраженные в ней звезды"