Стоит задача накладывать на изображение различные фильтры. Т.е. добавить в картинку помехи, рябь, сделать его черно-белым, изменение яркости и т.д. Наверняка для таких операций существует готовая библиотека, но поиск выдает только различные учебники по реализации подобных фильтров
По одному из гайдов написал изменение яркости... но зачем делать то, что уже готово и оптимизировано
public static Image ChangeBrightness(Bitmap image, float brightness)
{
ImageAttributes imageAttributes = new ImageAttributes();
int width = image.Width;
int height = image.Height;
float[][] colorMatrixElements = {
new float[] {brightness, 0, 0, 0, 0},
new float[] {0, brightness, 0, 0, 0},
new float[] {0, 0, brightness, 0, 0},
new float[] {0, 0, 0, 1, 0},
new float[] {0, 0, 0, 0, 1}
};
ColorMatrix colorMatrix = new ColorMatrix(colorMatrixElements);
imageAttributes.SetColorMatrix(
colorMatrix,
ColorMatrixFlag.Default,
ColorAdjustType.Bitmap);
Graphics graphics = Graphics.FromImage(image);
graphics.DrawImage(image, new Rectangle(0, 0, width, height), 0, 0, width,
height,
GraphicsUnit.Pixel,
imageAttributes);
return image;
}
Да, конечно подобные вещи уже реализованы.
Могу посоветовать OpenCV. В ней реализованы практически все операции, которые можно делать с изображениями. В оригинале либа написана на C++, но если open source реализация на C# - openCvSharp.
Функционал огромен, но конкретно по вашему вопросу можно посмотреть в вот этот семпле.
Сборка персонального компьютера от Artline: умный выбор для современных пользователей