Пиксельные части изображения в C#

Эта программа позволяет щелкнуть и перетащить, чтобы выбрать область и пикселировать область.

Код, который позволяет вам выбрать область, интересен, но достаточно прост. См. Код и пример Используйте поле резиновой ленты, чтобы пользователь мог выбрать область на снимке в C# для получения дополнительной информации о выборе областей. Код, который загружает и сохраняет изображения, также прост.

В следующем коде показана наиболее интересная часть программы: метод, который пикселирует область изображения.

Этот метод сначала пересекает выбранный прямоугольник с границами изображения. Если пользователь перетаскивает и затем отбрасывает мышь с края изображения, прямоугольник будет содержать точки от изображения, и нет смысла пытаться их обработать.

Далее код устанавливает константу box_wid в 8. Это размер пиксельных ячеек. Вы можете изменить это значение, чтобы сделать поля больше или меньше.

Переменная уровня CurrentBitmap содержит текущее изображение. Это исходное изображение, загруженное из файла с некоторыми областями, возможно, уже пиксельными. Программа создает объект Graphics, связанный с этим изображением, для рисования на нем.

Далее программа вычисляет координаты X и Y в изображении, где она начнет пикетирование. Он делит координаты целевого прямоугольника на box_wid, использует (int) для усечения результата, а затем умножает его на box_wid. Это делает стартовые X и Y координаты наибольшего кратного box_wid меньше или равного верхнему левому углу целевого прямоугольника. Код делает это, поэтому пиксели разных прямоугольников будут красиво выстраиваться. Если вы нажмете и перетащите на пиксель две области на изображении, и эти области перекрываются, их пиксельные ячейки будут выстраиваться в линию.

Затем код перебирает пиксели в целевом прямоугольнике. Для каждой области box_wid & times; box_wid код объединяет все цветовые компоненты пикселей и делит на количество пикселей внутри поля, чтобы получить среднее значение цвета. Затем код заполняет поле средним цветом.

Источник: http://csharphelper.com/blog/2015/07/pixellate-parts-of-an-image-in-c/

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)

Add a Comment

Ваш e-mail не будет опубликован. Обязательные поля помечены *