public static void Main()
string base64 = "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";
byte[] imageBytes = Convert.FromBase64String(base64);
Console.WriteLine("Before applying effect {0}",base64);
Console.WriteLine("Is img Valid? {0}",IsImageValid(imageBytes));
Console.WriteLine("img Length {0}",imageBytes.Length);
byte[] arr = ApplyContrast(imageBytes,0.5);
string bApplied = Convert.ToBase64String(arr);
Console.WriteLine("After applying effect: \n{0}",bApplied);
static bool IsImageValid(byte[] imageBytes)
using (MemoryStream ms = new MemoryStream(imageBytes))
using (Image.FromStream(ms))
static byte[] ApplyBrightness(byte[] imageBytes, int brightness)
using (MemoryStream ms = new MemoryStream(imageBytes))
using (Bitmap bmp = new Bitmap(ms))
for (int i = 0; i < bmp.Width; i++)
for (int j = 0; j < bmp.Height; j++)
Color pixel = bmp.GetPixel(i, j);
int newRed = (int)(Clamp(pixel.R + brightness, 0, 255));
int newGreen = (int)Clamp(pixel.G + brightness, 0, 255);
int newBlue = (int)Clamp(pixel.B + brightness, 0, 255);
bmp.SetPixel(i, j, Color.FromArgb(newRed, newGreen, newBlue));
ImageConverter converter = new ImageConverter();
return (byte[])converter.ConvertTo(bmp, typeof(byte[]));
static double Clamp(double value, double min, double max)
return Math.Max(min, Math.Min(value, max));
static byte[] getImageBytes(string imagePath){
byte[] imageBytes = File.ReadAllBytes(imagePath);
static string ImageToBase64(byte[] imageBytes)
string base64String = Convert.ToBase64String(imageBytes);
public static double NormalizeContrast(double value)
double contrastValue = Clamp(value, -1, 1);
return contrastValue + 1;
return 1 / (1 - Math.Min(0.99999, contrastValue));
static byte[] ApplyContrast(byte[] imageBytes, double contrast)
using (MemoryStream ms = new MemoryStream(imageBytes))
using (Bitmap bmp = new Bitmap(ms))
for (int i = 0; i < bmp.Width; i++)
for (int j = 0; j < bmp.Height; j++)
Color pixel = bmp.GetPixel(i, j);
int newRed = AdjustContrast(pixel.R, contrast);
int newGreen = AdjustContrast(pixel.G, contrast);
int newBlue = AdjustContrast(pixel.B, contrast);
bmp.SetPixel(i, j, Color.FromArgb(newRed, newGreen, newBlue));
ImageConverter converter = new ImageConverter();
return (byte[])converter.ConvertTo(bmp, typeof(byte[]));
static byte[] ApplySaturation(byte[] imageBytes, double saturation)
using (MemoryStream ms = new MemoryStream(imageBytes))
using (Bitmap bmp = new Bitmap(ms))
for (int i = 0; i < bmp.Width; i++)
for (int j = 0; j < bmp.Height; j++)
Color pixel = bmp.GetPixel(i, j);
double gray = 0.2989*pixel.R + 0.5870*pixel.G + 0.1140*pixel.B;
int newRed = AdjustSaturation(pixel.R, saturation , gray);
int newGreen = AdjustSaturation(pixel.G, saturation , gray);
int newBlue = AdjustSaturation(pixel.B, saturation , gray);
bmp.SetPixel(i, j, Color.FromArgb(newRed, newGreen, newBlue));
ImageConverter converter = new ImageConverter();
return (byte[])converter.ConvertTo(bmp, typeof(byte[]));
static int AdjustSaturation(int pixelValue, double saturation , double gray)
double newValue = -gray*saturation + pixelValue*(1+saturation);
return (int)Math.Round(Math.Max(0, Math.Min(255, newValue)));
static int AdjustContrast(int value, double contrast)
double newValue = ((value / 255.0 - 0.5) * contrast + 0.5) * 255.0;
return (int)Math.Round(Math.Max(0, Math.Min(255, newValue)));