public Bitmap ToBlackAndWhite(Bitmap original, bool dumb) { var bmp = new Bitmap(original.Width, original.Height); for (int i = 0; i < bmp.Width; i++) { for (int j = 0; j < bmp.Height; j++) { var rgb = original.GetPixel(i, j); var yuv = new Yuv(); if (dumb) { yuv.Y = (int)(0.333 * rgb.R + 0.333 * rgb.G + 0.333 * rgb.B); } else { yuv.FromRgb(rgb); } yuv.U = yuv.V = 0; bmp.SetPixel(i, j, yuv.ToRgb()); } } return(bmp); }
public Bitmap ToYuvAndBack(Bitmap original, int yBits, int uvBits) { var bmp = new Bitmap(original.Width, original.Height); var yuv = new Yuv { YBits = yBits, UBits = uvBits, VBits = uvBits }; for (int i = 0; i < bmp.Width; i++) { for (int j = 0; j < bmp.Height; j++) { yuv.FromRgb(original.GetPixel(i, j)); bmp.SetPixel(i, j, yuv.ToRgb()); } } return(bmp); }