Изменение контраста bitmap - C#

Узнай цену своей работы

Формулировка задачи:

Листинг программы
  1. public System.Drawing.Bitmap Apply(Bitmap bmpImg)
  2. {
  3. var BrightnessContrastImage = new Bitmap(bmpImg.Width, bmpImg.Height);
  4. {
  5. UInt32 p;
  6. for (int i = 0; i < bmpImg.Height; i++)
  7. for (int j = 0; j < bmpImg.Width; j++)
  8. {
  9. p = BrightnessContrast.core.BrightnessContrast.Brightness(BrightnessContrastImage.pixel[i, j]/*ERROR*/, BrightnessContrastThreshhold);
  10. BrightnessContrastImage.FromOnePixelToBitmap/*ERROR*/(i, j, p);
  11. }
  12. FromBitmapToScreen(); //ERROR
  13. }
  14. }
помогите разобраться в ошибке и как ее исправить

Решение задачи: «Изменение контраста bitmap»

textual
Листинг программы
  1.     class ImageColorMatrixTool
  2.     {
  3.         public Bitmap Transform(Image img, float brightness, float contrast, float saturation)
  4.         {
  5.             var imageAttributes = new ImageAttributes();
  6.  
  7.             var b = brightness;
  8.             var c = contrast;
  9.             var t = (1f - c) / 2f;
  10.             var s = saturation;
  11.             var sr = (1 - s) * 0.3086f;
  12.             var sg = (1 - s) * 0.6094f;
  13.             var sb = (1 - s) * 0.0820f;
  14.  
  15.             float[][] colorMatrixElements = {
  16.                new float[] {c*(sr+s), c*sr,     c*(sr),    0, 0},
  17.                new float[] {c*sg,     c*(sg+s), c*(sg),    0, 0},
  18.                new float[] {c*sb,     c*sb,     c*(sb+s),  0, 0},
  19.                new float[] {0,        0,        0,        1f, 0},
  20.                new float[] {t+b,      t+b,      t+b,       0, 1}};
  21.  
  22.             var colorMatrix = new ColorMatrix(colorMatrixElements);
  23.             imageAttributes.SetColorMatrix(colorMatrix, ColorMatrixFlag.Default, ColorAdjustType.Bitmap);
  24.  
  25.             var result = new Bitmap(img.Width, img.Height);
  26.             using (var gr = Graphics.FromImage(result))
  27.                 gr.DrawImage(img,
  28.                            new Rectangle(0, 0, img.Width, img.Height), 0, 0,
  29.                            img.Width, img.Height,
  30.                            GraphicsUnit.Pixel, imageAttributes);
  31.  
  32.             return result;
  33.         }
  34.     }
  35. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут