Example #1
0
        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);
        }
Example #2
0
        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);
        }