Чтобы уточнить: вы хотите, чтобы область рабочего стола, а не только в пределах вашего окна, находилась под вашим контролем, позволяя вам применять фильтр для каждого пикселя.Если это так, я думаю, что вам нужен DirectDraw с использованием библиотек XNA.WPF МОЖЕТ получить то, что вам нужно, а WinForms, скорее всего, не получит.Также существуют сторонние инструменты.
Если вы хотите эту возможность только в пределах окна вашего приложения, например, в приложении для рисования, это становится намного проще.Каждый класс в пространстве имен Windows.Forms, который наследуется от Control, предоставляет метод CreateGraphics ().Этот метод возвращает объект, представляющий поверхность рисования, покрывающую область экрана элемента управления, и является основой для всего, что вы хотите сделать в окне, включающем пользовательскую графику (и внутренне он используется для рисования элементов управления в первую очередь).
Когда у вас есть объект Graphics, вы можете рисовать на нем изображения.Популярный метод рисования пользовательской графики, такой как анимация или игры, состоит в том, чтобы фактически рисовать объект Bitmap (полученный из абстрактного изображения), а затем, когда вы закончите, нарисуйте Bitmap в области Graphics.Это сделано, чтобы уменьшить мерцание;если графическая область отображается пользователю во время ее рисования, пользователь увидит полное изображение только за доли секунды, прежде чем оно будет «стерто» и перерисовано, а фигуры, нарисованные на полпути, будут там один раз и исчезнут.затем, когда они ждут, чтобы их нарисовали.Рисование растрового изображения, а затем отображение растрового изображения на экране, когда вы закончите, означает, что пользователь видит полное изображение за один раз.
Вы можете расширить это, используя функции прозрачности для создания многослойных изображений.Иметь растровое изображение для каждого слоя, которым вы хотите манипулировать.Работайте с ними по отдельности, затем нарисуйте каждый из них в правильном порядке от начала до конца на главном растровом изображении и нарисуйте это растровое изображение на экране.Это позволяет вам использовать те операции типа PhotoShop, когда часть изображения представляет собой один слой, и им можно манипулировать независимо от всех остальных.
Что касается фильтрации по пикселям, объекты Bitmap предоставляют функции GetPixel () и SetPixel ().методы, которые позволяют вам захватить цвет одного пикселя, выполнить расчет фильтра и заново нарисовать его.Этот процесс будет полностью ускорен и поэтому будет ограничен скоростью вашего процессора, но позволит очень точно управлять вашим изображением или повторять такие задачи, как ваши фильтры.