Exemple #1
0
        public override Bitmap CreateAnalysisPicture()
        {
            Bitmap analysisPicture = new Bitmap(GetPicture().Width, GetPicture().Height);
            Color  pixel;
            int    power2 = BitByte.powerOfTwo(numberOfBit);

            for (int i = 0; i < analysisPicture.Width; i++)
            {
                for (int j = 0; j < analysisPicture.Height; j++)
                {
                    analysisPicture.SetPixel(i, j,
                                             Color.FromArgb(
                                                 ((GetPicture().GetPixel(i, j).R / power2) % 2) * power2,
                                                 ((GetPicture().GetPixel(i, j).G / power2) % 2) * power2,
                                                 ((GetPicture().GetPixel(i, j).B / power2) % 2) * power2
                                                 ));
                    //Console.WriteLine(GetPicture().GetPixel(i, j) + " to " + analysisPicture.GetPixel(i, j));
                }
            }
            return(analysisPicture);
        }
Exemple #2
0
        public override BitArray ColorRead(Color color)
        {
            BitArray array  = new BitArray(BitsPerPixel());
            int      number = 0;

            for (int i = 0; i < colors.Length; i++)
            {
                if (colors[i] == parameters[0])
                {
                    BitByte.writeBitArray(array, number, color.R, i + 1);
                }
                if (colors[i] == parameters[1])
                {
                    BitByte.writeBitArray(array, number, color.G, i + 1);
                }
                if (colors[i] == parameters[2])
                {
                    BitByte.writeBitArray(array, number, color.B, i + 1);
                }
                number += i + 1;
            }
            return(array);
        }
Exemple #3
0
 public override void ParametersReader(string parameters)
 {
     numberOfBit = Convert.ToInt32(parameters.Trim());
     twoPower    = (byte)BitByte.powerOfTwo(numberOfBit);
 }
Exemple #4
0
        public override Color ColorWrite(BitArray data, int position, Color color)
        {
            byte red    = color.R;
            byte green  = color.G;
            byte blue   = color.B;
            int  number = 0;

            for (int i = 0; i < colors.Length; i++)
            {
                if (colors[i] == parameters[0])
                {
                    red = (byte)(color.R / BitByte.powerOfTwo(i + 1) * BitByte.powerOfTwo(i + 1) + BitByte.BitsToByte(data, position + number, i + 1));
                }
                if (colors[i] == parameters[1])
                {
                    green = (byte)(color.G / BitByte.powerOfTwo(i + 1) * BitByte.powerOfTwo(i + 1) + BitByte.BitsToByte(data, position + number, i + 1));
                }
                if (colors[i] == parameters[2])
                {
                    blue = (byte)(color.B / BitByte.powerOfTwo(i + 1) * BitByte.powerOfTwo(i + 1) + BitByte.BitsToByte(data, position + number, i + 1));
                }
                number += i + 1;
            }
            return(Color.FromArgb(red, green, blue));
        }
Exemple #5
0
        public override Color ColorWrite(BitArray data, int position, Color color)
        {
            byte red   = color.R;
            byte green = color.G;
            byte blue  = color.B;

            if (hideColor.Equals("red"))
            {
                red = (byte)(red / BitByte.powerOfTwo(numberOfBit) * BitByte.powerOfTwo(numberOfBit) + BitByte.BitsToByte(data, position, numberOfBit));
            }
            if (hideColor.Equals("green"))
            {
                green = (byte)(green / BitByte.powerOfTwo(numberOfBit) * BitByte.powerOfTwo(numberOfBit) + BitByte.BitsToByte(data, position, numberOfBit));
            }
            if (hideColor.Equals("blue"))
            {
                blue = (byte)(blue / BitByte.powerOfTwo(numberOfBit) * BitByte.powerOfTwo(numberOfBit) + BitByte.BitsToByte(data, position, numberOfBit));
            }
            return(Color.FromArgb(red, green, blue));
        }
Exemple #6
0
 public static BitArray ReadBitArray(string path)
 {
     return(BitByte.BytesToBits(File.ReadAllBytes(path)));
 }