public static void Negative() { Bitmap result = new Bitmap(bmpImg.Width, bmpImg.Height); Color cr = new Color(); for (int stPix = 0; stPix < 5; stPix++) { for (int i = 0; i < bmpImg.Width; ++i) { for (int j = stPix; j < bmpImg.Height; j += 5) { cr = bmpImg.GetPixel(i, j); result.SetPixel(i, j, Color.FromArgb(255 - cr.R, 255 - cr.G, 255 - cr.B)); } } mainWindow.Dispatcher.Invoke(() => { mainWindow.imageDisplay.Source = Bitmap2BitmapImage(result); }); } mainWindow.Dispatcher.Invoke(() => { GistogramColor.showGistagrams(result); }); }
public static void BlachAndWhite() { int P = 0; mainWindow.Dispatcher.Invoke(() => { P = (int)mainWindow.Slider1.Value; }); Bitmap result = new Bitmap(bmpImg.Width, bmpImg.Height); Color color = new Color(); for (int stPix = 0; stPix < 5; stPix++) { for (int j = 0; j < bmpImg.Height; j++) { for (int i = stPix; i < bmpImg.Width; i += 5) { color = bmpImg.GetPixel(i, j); int K = (color.R + color.G + color.B) / 3; result.SetPixel(i, j, K <= P ? Color.Black : Color.White); } } mainWindow.Dispatcher.Invoke(() => { mainWindow.imageDisplay.Source = Bitmap2BitmapImage(result); }); } mainWindow.Dispatcher.Invoke(() => { GistogramColor.showGistagrams(result); }); }
//Отобразить изображение на форме public BitmapImage showImage() { BitmapImage img = new BitmapImage(); img.BeginInit(); img.UriSource = new Uri("ram.jpg", UriKind.Relative); img.CacheOption = BitmapCacheOption.OnLoad; img.EndInit(); GistogramColor.showGistagrams(img); imageDisplay.Width = 1500; imageDisplay.Source = img; return(img); }
public static void loadBrightness() { calceMidleCenelRGB(); mainWindow.Dispatcher.Invoke(() => { mainWindow.Slider1.Value = R; mainWindow.Slider2.Value = G; mainWindow.Slider3.Value = B; GistogramColor.showGistagrams(bmpImg); }); prevSlider1 = R; prevSlider2 = G; prevSlider3 = B; }
public static void ColorEqualizer() { Bitmap result = new Bitmap(bmpImg.Width, bmpImg.Height); Color cr = new Color(); int newValueSlider1 = 0; int newValueSlider2 = 0; int newValueSlider3 = 0; mainWindow.Dispatcher.Invoke(() => { newValueSlider1 = (int)mainWindow.Slider1.Value; newValueSlider2 = (int)mainWindow.Slider2.Value; newValueSlider3 = (int)mainWindow.Slider3.Value; }); for (int stPix = 0; stPix < 5; stPix++) { for (int i = 0; i < bmpImg.Width; ++i) { for (int j = stPix; j < bmpImg.Height; j += 5) { cr = bmpImg.GetPixel(i, j); int red = cr.R; red += newValueSlider1 - prevSlider1; if (red > 255) { red = 255; } else if (red < 0) { red = 0; } int green = cr.G; green += newValueSlider2 - prevSlider2; if (green > 255) { green = 255; } else if (green < 0) { green = 0; } int blue = cr.B; blue += newValueSlider3 - prevSlider3; if (blue > 255) { blue = 255; } else if (blue < 0) { blue = 0; } result.SetPixel(i, j, Color.FromArgb(red, green, blue)); } } mainWindow.Dispatcher.Invoke(() => { mainWindow.imageDisplay.Source = Bitmap2BitmapImage(result); }); } mainWindow.Dispatcher.Invoke(() => { GistogramColor.showGistagrams(result); }); }
public static void Contrast() { Bitmap result = new Bitmap(bmpImg.Width, bmpImg.Height); Color cr = new Color(); double newValueSlider1 = 0; mainWindow.Dispatcher.Invoke(() => { newValueSlider1 = mainWindow.Slider1.Value; }); for (int stPix = 0; stPix < 5; stPix++) { for (int i = 0; i < bmpImg.Width; ++i) { for (int j = stPix; j < bmpImg.Height; j += 5) { cr = bmpImg.GetPixel(i, j); int red = cr.R; red = (int)(newValueSlider1 * (red - R) + R); if (red > 255) { red = 255; } else if (red < 0) { red = 0; } int green = cr.G; green = (int)(newValueSlider1 * (green - G) + G); if (green > 255) { green = 255; } else if (green < 0) { green = 0; } int blue = cr.B; blue = (int)(newValueSlider1 * (blue - B) + B); if (blue > 255) { blue = 255; } else if (blue < 0) { blue = 0; } result.SetPixel(i, j, Color.FromArgb(red, green, blue)); } } mainWindow.Dispatcher.Invoke(() => { mainWindow.imageDisplay.Source = Bitmap2BitmapImage(result); }); } mainWindow.Dispatcher.Invoke(() => { GistogramColor.showGistagrams(result); }); }